exemple est le suivant:en classe modèle
struct TEMP
{
int j;
TEMP()
{
j = 0;
}
};
template<typename T>
class classA
{
struct strA
{
long i;
strA():i(0) {}
};
static strA obj_str;
classA();
};
template<typename T>
classA<T>::classA()
{}
template<typename T>
classA<TEMP>::strA classA<TEMP>::obj_str;
int main()
{
return 0;
}
lors de la compilation de ce code, je reçois l'erreur suivante:
test1.cpp:32: internal compiler error: in import_export_decl, at cp/decl2.c:1970 Please submit a full bug report, with preprocessed source if appropriate. See http://bugzilla.redhat.com/bugzilla> for instructions. Preprocessed source stored into /tmp/ccUGE0GW.out file, please attach this to your bugreport.
Je construis ce code à la machine x86_64-redhat-linux , et la version gcc est gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)
S'il vous plaît noter que ce code a déjà été construit avec gcc version 3.4.5 20051201 (Red Hat 3.4.5-2) à i386- Redhat-linux machine.
Aucune idée de la raison pour laquelle ce n'est pas possible avec gcc 4.1.2.
Merci d'avance.
Avez-vous envoyé un rapport de bogue complet? C'est ce que l'erreur vous dit de faire. Vous pouvez essayer d'utiliser un autre compilateur [version] pour l'instant. – strager
J'ai trouvé un rapport de bug ici: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24791 - cela ressemble à une variante de celui-là. –
Une erreur de compilation interne signifie toujours que quelque chose ne va pas avec le compilateur, donc ne le prenez pas pour signifier que c'est de votre faute. –