On Feb 19, 2008 5:43 AM, Gonzalo Garramuño <[EMAIL PROTECTED]> wrote: > Mathieu Malaterre wrote: > > Ok this was yet-another-weird-dll thingy, one cannot do: > > > > class GDCM_EXPORT String : std::string { ... } > > > > Please, learn a little bit more about C++.
Oh thank you ! I'll take your advice right away, mister expert. So could you please let me know why *in my particular case* this is wrong: 1. I did not add any data member 2. I did not overload the dstor Please do not copy some random comment found on the internet and instead comment on my particular implementation with the following 1 and 2 restrictions. Thanks. > You should never inherit > from std::string (or any std::* container) as their functions or > destructor are not virtual. That can (and will) spell disaster for > anyone else trying to use your library/functions or even for yourself if > you go through pointers or references. I know exactly what I was doing, and I still need a 'string-like' class with an overloaded operator: inline std::istream& operator>>(std::istream &is, MyString &ms); Having std::string as member rather than inherited would means *tons* of duplicated code, and in my particular case inheriting was perfectly safe. Je ne vous salut pas monsieur, -- Mathieu _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake