[ROOT] RE:[CINT] Still cannot get templated STL cl

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Sun Jun 23 2002 - 09:26:37 MEST


Hello Gora,

Sorry about inconvenience.  Cint can not handle this now.
The problem is in partial specialization of template iterator_traits.

Masaharu Goto


>
>Hi,
>  I do not know if my previous message went missing somehow, but I am
>getting frustrated with this problem. Attached are files that will
>reproduce the error: compile with "make" assuming GNU make. I have tried
>various versions of root including 3.03.05 and 3.03.06, with gcc 3.0
>and 3.1 on a Linux SuSE 7.1 box. Even if this is not possible in the
>interpreter currently, it would be nice to know that.
>
>  With gcc 3.0 (ROOT is also compiled with 3.0), I get the following
>errors at the rootcint step:
>Error: class,struct,union or type __traits_type::iterator_category not
>defined  FILE:/usr/local/root/new/cint/lib/prec_stl/iterator LINE:260
>Error: class,struct,union or type __traits_type::value_type not defined
>FILE:/usr/local/root/new/cint/lib/prec_stl/iterator LINE:261
>Error: class,struct,union or type __traits_type::difference_type not defined
>FILE:/usr/local/root/new/cint/lib/prec_stl/iterator LINE:262
>Error: class,struct,union or type __traits_type::pointer not defined
>FILE:/usr/local/root/new/cint/lib/prec_stl/iterator LINE:263
>Error: class,struct,union or type __traits_type::reference not defined
>FILE:/usr/local/root/new/cint/lib/prec_stl/iterator LINE:264
>
>These errors go away, and everything compiles fine if I replace "unsigned
>int"
>with "int" in the class template.
>
>  With gcc 3.1 (and ROOT, likewise, compiled with 3.1), the dictionary
>source
>seems to be generated without problems after I #define
>random_access_iterator
>to iterator, but g++ then chokes on the generated source, with reams of
>errors
>along the lines of:
>classADict.cxx: In function `int
>   G__vectorlEintcO__malloc_alloc_templatelE0gRsPgR_begin_0_0(G__value*,
>const
>   char*, G__param*, int)':
>classADict.cxx:319: `class __gnu_cxx::__normal_iterator<int*,
>std::vector<int,
>   std::__malloc_alloc_template<0> > >' used where a `long int' was expected
>
>Thanks for any help.
>
>Regards,
>Gora
>



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:57 MET