Re: [ROOT] Why does this fail?

From: Jiri Masik (masik@fzu.cz)
Date: Wed Aug 28 2002 - 17:35:00 MEST


Rich Holmes <rsholmes@physics.syr.edu> writes:

> File testclass.hh contains:
> 
> =====
> 
> #include <string>
> 
> class testclass1
> {
> public:
>   testclass1(): fs("") {};
>   testclass1 (const string& s) {};
>   virtual ~testclass1() {};
> 
>   string fs;
> };
> 
> class testclass2
> {
> public:
>   testclass2(): fs("") {};
>   testclass2 (const string& s): fs(s) {};
>   virtual ~testclass2() {};
> 
>   string fs;
> };
> 
> =====
> 
> Under ROOT 3.03/05 running under Red Hat 7.2:
> 
> root [0] .L testclass.hh   
> root [1] string s="test"           
> root [2] testclass1 z1(s)       
> root [3] testclass2 z2(s)       
> $ 
> 
> testclass1 works, testclass2 aborts ROOT with no error message.  The
> only difference is the initialization of fs.  Why?

Hi Rich,

both would work with Cint precompiled string.dll. I haven't investigated
this case but I've seen similar crashes inside bstring.h before. If
portability is not an isssue install compiled inplementation of STL
which works better but it is not supported on all platforms.

make cintdlls
make install

cheers
        Jiri



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