Re: static members of template classes

From: Victor Bazarov (v.Abazarov_at_comAcast.net)
Date: 12/16/03


Date: Tue, 16 Dec 2003 02:48:13 GMT


"Alibek" <alibekj@yahoo.com> wrote...
> I have here template class with
> static members. and I put definition of the static member in the same
> .h file where the class was declared.
>
> however, we are getting very stange errors, because static member
> occupy same place as some other non-static variables. and so
> application crashes. compiler somehow allocates same place for them.
>
> I first thought that it is because definition of static member should
> be done inside translation unit (that is inside cpp file). otherwise
> One Definition Rule is broken.
> but in the case of template classes I do not know exactly. C++
> standard says it is ok to put definition of static member into same .h
> file.
>
> then I moved definition of static member to cpp file, application
> stopped crashing, but Purify still shows ABW errors.
>
> does somebody know - is wrong or not to put definition of static
> member of template class into same .h file?

It's not wrong.

>
> I am using 2.96 gcc (g++) compiler.

You're using a compiler that is at least five years old. Change
your compiler.

Victor



Relevant Pages

  • Re: static members of template classes
    ... compiler shows many problem which 2.96 simply ignored. ... >> however, we are getting very stange errors, because static member ... >> then I moved definition of static member to cpp file, ...
    (comp.lang.cpp)
  • static members of template classes
    ... however, we are getting very stange errors, because static member ... compiler somehow allocates same place for them. ... be done inside translation unit (that is inside cpp file). ... member of template class into same .h file? ...
    (comp.lang.cpp)
  • Re: template class and static variables
    ... I think you can define a base class which has a static member. ... class A inherits from it. ... > I have a template class like ...
    (microsoft.public.vc.language)
  • Trouble with a pointer to a static member of a template class
    ... Given the following template class: ... I wish to declare and define a pointer to the static member above. ... But the compiler tells me it is unable to do a suitable conversion ...
    (comp.lang.cpp)