This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/28025] New: multiple template friend compile error
- From: "joerg dot richter at pdv-fs dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Jun 2006 08:34:29 -0000
- Subject: [Bug c++/28025] New: multiple template friend compile error
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
$ cat t.cc
class BaseSubmit
{
template<class T> friend class PeriodicSubmit;
};
template<class ID>
class ValuesSubmit
{
template<class T> friend class PeriodicSubmit;
};
class A;
class MultiSubmit : public ValuesSubmit<A>
{
};
$ g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /tools/inst/gcc-4.1.1/configure --prefix=/tools/pkg/gcc/4.1.1
--enable-languages=c,c++ --disable-threads
Thread model: single
gcc version 4.1.1
$ g++ -c -o t.o t.cc
t.cc: In instantiation of 'ValuesSubmit<A>':
t.cc:13: instantiated from here
t.cc:8: error: declaration of template 'template<class T> struct
PeriodicSubmit'
t.cc:3: error: conflicts with previous declaration 'template<class T> struct
PeriodicSubmit'
t.cc:8: error: declaration of 'template<class T> struct PeriodicSubmit'
t.cc:3: error: conflicts with previous declaration 'template<class T> struct
PeriodicSubmit'
Makeing BaseSubmit to a class template lets this error disappear.
The same if you add 'template<class T> class PeriodicSubmit;' as the first
line.
Note that there is a minor additional error. The line number t.cc:8 is wrong.
It should be t.cc:9.
--
Summary: multiple template friend compile error
Product: gcc
Version: 4.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: joerg dot richter at pdv-fs dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28025