Re: genreflex ignoring STL container deque

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Wed, 13 Jan 2010 17:36:46 +0100


Hi,

I cannot reproduce that problem. Do you instantiate the templates? Can you re-run genreflex with the additional parameter --debug=3 and send the *_gccxmlout.xml file?

Cheers, Axel.

On 2010-01-13 17:15, Brett Viren wrote:
> 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:37:57 CET

This archive was generated by hypermail 2.2.0 : Wed Jan 13 2010 - 23:50:01 CET