This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/30909] New: public member of template class not visible in derived template class
- From: "sl at datamyway dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Feb 2007 12:21:58 -0000
- Subject: [Bug c++/30909] New: public member of template class not visible in derived template class
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
on SuSe linux 10.0
~/wurschtel/cpp> uname -a
Linux djebe 2.6.13-15-smp #1 SMP Tue Sep 13 14:56:15 UTC 2005 i686 i686 i386
GNU/Linux
with gcc version 4.0.2 (but also with 4.1.2)
when running make on the following files
A.h:
//const int NUM_BYTES = 5;
template<int NUM_BYTES>
class A
{
public:
int mBytes[NUM_BYTES];
};
-----
B.h:
#include "A.h"
template<int NUM_BYTES>
class B : public A<NUM_BYTES>
{
public:
int blee() {
mBytes[0]++;
return mBytes[0];
};
};
-----
x.cpp:
#include "A.h"
template<int NUM_BYTES>
class B : public A<NUM_BYTES>
{
public:
int blee() {
mBytes[0]++;
return mBytes[0];
};
};
-----
makefie:
#include "A.h"
template<int NUM_BYTES>
class B : public A<NUM_BYTES>
{
public:
int blee() {
mBytes[0]++;
return mBytes[0];
};
};
-----
I get compile errors:
~/wurschtel/cpp> make
rm -f x
g++ -ansi -pedantic -Wall -o x x.cpp
B.h: In member function ‘int B<NUM_BYTES>::blee()’:
B.h:9: error: ‘mBytes’ was not declared in this scope
make: *** [x] Error 1
---
when the templates are changed to classes and the template parameter is
declared as constant everything compiles and runs ok.
On older linux running g++ version 2.95.2 everything compiles and runs ok.
Sorry if this report is duplicate, i filed it yesterday along with 30893 but
cannot find it today so I assume commit failed.
--
Summary: public member of template class not visible in derived
template class
Product: gcc
Version: 4.0.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sl at datamyway dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30909