static members of template classes

A

Alibek

Hello !

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?

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

thanks !

br.,
Alibek.
 
V

Victor Bazarov

Alibek said:
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
 
A

Alibek

Thank You very much. this is most probably will solve my problem.
2.95.3 compiler shows many problem which 2.96 simply ignored.
 
G

Gianni Mariani

Alibek said:
Thank You very much. this is most probably will solve my problem.
2.95.3 compiler shows many problem which 2.96 simply ignored.

Don't waste your time, get the GCC 3.3.2 compiler.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,570
Members
45,045
Latest member
DRCM

Latest Threads

Top