[LLVMdev] How to implement list in llvm

Cristianno Martins cristiannomartins at gmail.com
Mon Apr 15 08:27:12 PDT 2013


Hi,

I guess you could use a template with a std::vector: you don't need to define right away the type, if you create a template of it. 

It should look something like that:

template<class B> class List {
std::vector<B> myList;
void insert (int pos, B elem);
}

template <class B> 
void List::add (int pos, B elem) { 
  myList.insert(myList.begin()+pos, elem);
}

Then, wherever you'll use this class, you should define for which class B your class List should match (such as "List<int> intList;" or "List< std::vector<long> > longVectors;").

-- 
Cristianno Martins


On Monday, 15 de April de 2013 at 07:13, B B wrote:

> Hi!
> I want to implement a list (which operates like ArrayList in Java).
> 
> I can use ArrayType from llvm, but at creation time I have to specify
> size so there is a problem when I want to extend it (I can reallocate
> it ofc). Moreover I need to implement all the operations (inserting,
> removing etc.) manually.
> 
> I though that maybe I can use std::vector, but there is another
> problem - std::vector is a template class, so I have to specify type
> before compiling it to llvm bytecode. Is there some solution to
> specify that type dynamically?
> 
> What is the best method to implement such things in llvm?
> 
> I would be grateful for any solutions or tips.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 
> 


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130415/495f0050/attachment.html>


More information about the llvm-dev mailing list