Hi Matevz,
Fix now in cvs.
Cheers, Fons.
On Mon, 2004-03-29 at 13:32, Matevz Tadel wrote:
> Hi,
>
> The following construct in a header file causes rootcint to die of
> errors (4.00/03, gcc-3.3.2 FC1):
>
> #include <list>
> using namespace std;
> typedef std::list<int**> lppI_t;
> typedef std::list<int**>::iterator lppI_i;
>
> The error output is attached (together with linkdef and header file).
>
> After playing around for some time, i noticed that adding two
> 'typename's to cint/lib/prec_stl/memory fixes the problem.
> The patch is also attached, but i'm not competent on the matter and the
> fix is most likely a crappy one.
>
> Cheers,
> matevz
>
>
>
>
>
>
> ______________________________________________________________________
>
> Generating dictionary for Safr
> rootcint -f Safr_Dict.cc -c Safr.h Safr_LinkDef.h
> cint internal limitation in cint/src/typedef.c 977
> cint internal limitation in cint/src/typedef.c 977
> Syntax error FILE:prec_stl/memory LINE:52
> Syntax error FILE:prec_stl/memory LINE:56
> Syntax error FILE:prec_stl/memory LINE:57
> Limitation: reference or pointer type not handled properly FILE:prec_stl/list LINE:48
> Limitation: reference or pointer type not handled properly FILE:prec_stl/list LINE:49
> Warning: Error occured during reading source files
> Warning: Error occured during dictionary source generation
> !!!Removing Safr_Dict.cc Safr_Dict.h !!!
> Error: rootcint: error loading headers...
> make: *** [Safr_Dict.cc] Error 1
>
> ______________________________________________________________________
>
> #include <TObject.h>
> #include <TMatrixF.h>
>
> #include <list>
>
> using namespace std;
>
> typedef std::list<int**> lppI_t;
> typedef std::list<int**>::iterator lppI_i;
>
> class Safr : public TMatrixF {
> public:
> Safr() : TMatrixF(5,5) {}
>
> ClassDef(Safr, 1)
> };
>
> ______________________________________________________________________
>
> #pragma link off all functions;
> #pragma link off all globals;
> #pragma link off all classes;
>
> #pragma link C++ class Safr+;
>
> ______________________________________________________________________
>
> Common subdirectories: root.403.src.orig/cint/lib/prec_stl/CVS and root.403.src/cint/lib/prec_stl/CVS
> diff -u root.403.src.orig/cint/lib/prec_stl/memory root.403.src/cint/lib/prec_stl/memory
> --- root.403.src.orig/cint/lib/prec_stl/memory 2004-02-09 22:11:17.000000000 +0100
> +++ root.403.src/cint/lib/prec_stl/memory 2004-03-25 13:26:31.000000000 +0100
> @@ -26,8 +26,8 @@
> public:
> typedef size_t size_type;
> typedef ptrdiff_t difference_type;
> - typedef _Tp* pointer;
> - typedef const _Tp* const_pointer;
> + typedef typename _Tp * pointer;
> + typedef const typename _Tp * const_pointer;
> typedef _Tp& reference;
> typedef const _Tp& const_reference;
> typedef _Tp value_type;
--
Org: CERN, European Laboratory for Particle Physics.
Mail: 1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
WWW: http://www.rademakers.org/fons/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET