c++/7934: definition of static member for template class miss ing in obj file
Gu, Michael
Michael_Gu@maxtor.com
Wed Dec 4 06:56:00 GMT 2002
The following reply was made to PR c++/7934; it has been noted by GNATS.
From: "Gu, Michael" <Michael_Gu@maxtor.com>
To: "'bangerth@dealii.org'" <bangerth@dealii.org>,
"'gcc-bugs@gcc.gnu.org'" <gcc-bugs@gcc.gnu.org>,
"'gcc-prs@gcc.gnu.org'"
<gcc-prs@gcc.gnu.org>,
"Gu, Michael" <Michael_Gu@Maxtor.com>,
"'mkjyg@charter.net'" <mkjyg@charter.net>,
"'nobody@gcc.gnu.org'"
<nobody@gcc.gnu.org>,
"'gcc-gnats@gcc.gnu.org'" <gcc-gnats@gcc.gnu.org>
Cc: "'mkjyg@charter.net'" <mkjyg@charter.net>
Subject: RE: c++/7934: definition of static member for template class miss
ing in obj file
Date: Wed, 4 Dec 2002 07:41:04 -0700
Wolfgang,
My description was not detailed enough. Here is the code example:
template <class T>
class A
{
static T * instance;
};
template <class T>
T * instance=0;
Note all of the above codes are in a header file - I know this doesn't sound
right, but on the other hand I don't have a better solution for this. This
is not my code either.
I guess the idea is that when the template class is used, the instance will
be automatically defined.
The same gcc on Sun works for this. So I guess this might be a library
problem for HP compatibility.
Michael
-----Original Message-----
From: bangerth@dealii.org [mailto:bangerth@dealii.org]
Sent: Tuesday, December 03, 2002 6:10 PM
To: gcc-bugs@gcc.gnu.org; gcc-prs@gcc.gnu.org; michael_gu@maxtor.com;
mkjyg@charter.net; nobody@gcc.gnu.org
Subject: Re: c++/7934: definition of static member for template class
missing in obj file
Synopsis: definition of static member for template class missing in obj file
State-Changed-From-To: open->feedback
State-Changed-By: bangerth
State-Changed-When: Tue Dec 3 15:10:06 2002
State-Changed-Why:
Hi Michael,
your bug report is missing a code example, so it is hard to
tell whether the problem is with the compiler or your program. Please
send it to us so that we can tell.
However, note that a common source of problems is that
people write code like
template <class T> struct X {
static int i;
}
Now, in order to actually get a _definition_ of the static
member variable, you have to have a line like
template <class T> int X<T>::i;
in your program.
Regards
Wolfgang
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
r=7934
More information about the Gcc-prs
mailing list