I need to create a map, from integers to sets of tuples, the tuples in a single set have the same size. The problem is that the size of a tuple and its parameter types can be determined at runtime, not compile time. I am imagining something like:
std::map<int, std::set<boost::tuple> >
but not exctly sure how to exactly do this, bossibly using pointers.
The purpose of this is to create temporary relations (tables), each with a unique identifier (key), maybe you have another approach.
The purpose of
boost::tuple
is to mix arbitrary types. If, as you say,then you should use
map< int, set< vector< int > > >
. (If I were you, I'd throw sometypedef
s at that.)To answer the original question, though,
boost::tuple
doesn't allow arbitrary types at runtime.boost::any
does. However,any
does not support comparison so there's a little more work if you want to use it in aset
.