genreflex ignoring STL container deque

From: Brett Viren <bv_at_bnl.gov>
Date: Wed, 13 Jan 2010 11:15:51 -0500


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&lt;double&gt;"/>   <class name="std::vector&lt;std::deque&lt;double&gt; &gt;"/> </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&lt;int,std::vector&lt;int &gt; &gt;"/>

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