Hi Roottalk,
We have problems with genreflex and STL container deque. We are using ROOT 5.22/00a and gccxml 0.9.0_20081130 with GCC 4.3 and on x86 Linux. Our CMT based build system uses LCGCMT v53r3.
We are trying to store a "std::vector<std::deque<double> >" in a TTree. The input XML file for genreflex is like:
<lcgdict>
<class name="std::deque<double>"/>
<class name="std::vector<std::deque<double> >"/>
</lcgdict>
and the header.h file given to genreflex holds #includes for <vector> and <deque>.
The problem is that genreflex is simply ignoring these two classes. It gives this output (long paths snipped):
--->> genreflex: INFO: Parsing file [snip]/TTreeVec/dict/headers.h with GCC_XML OK
--->> genreflex: INFO: Generating Reflex Dictionary
--->> genreflex: WARNING: Class std::deque<double> in selection file [snip]/TTreeVec/dict/classes.xml not generated.
--->> genreflex: WARNING: Class std::vector<std::deque<double> > in selection file [snip]/TTreeVec/dict/classes.xml not generated.
And, indeed code is when run against the resulting Dict library in order to fill a TTree we see errors:
Error in <TTree::Branch>: The class requested (vector<deque<double> >) for the branch "DequeVecBranch" refer to an stl collection and do not have a compiled CollectionProxy. Please generate the dictionary for this class (vector<deque<double> >)
Other, similar STL containers work. For example we have
<class name="std::map<int,std::vector<int > >"/>
Is there something special about "deque"?
Thanks for any help,
-Brett.
Received on Wed Jan 13 2010 - 17:15:57 CET
This archive was generated by hypermail 2.2.0 : Wed Jan 13 2010 - 17:50:01 CET