My Header file Interface.h has the following piece of code
template <class T>
class Interface {
...
protected:
static const std::string cConfItem;
};
typedef Interface<FileXfer::iFileXfer> InterfaceFileXfer;
============================================
In my source file Interface.cxx
I have the following:
const string InterfaceFileXfer::cConfItem = "Handler.FileXferH";
The above gets compiled without any errors on Sun Studio11.
But I get the following error when I compile using gcc (gcc-4.1.3-29 openSUSE
10.2)
Interface.cxx:31: error: too few template-parameter-lists
I don't know how should be the initialization for cConfItem like...
So I tried the following:
template <class T> const string Interface<FileXfer::iFileXfer>::cConfItem =
"Handler.FileXferH";
But I got the following error:
internal compiler error: in import_export_decl, at cp/decl2.c:1715
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://bugs.opensuse.org> for instructions.
make: *** [Interface.o] Error 1
--
Summary: internal compiler error: in import_export_decl, at
cp/decl2.c:1715
Product: gcc
Version: 4.1.3
Status: UNCONFIRMED
Severity: blocker
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: keelar at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34447