nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Template-Nutzung/Look-up bei geschachtelten Klassen/Strukturen

Von: Thomas Dorner (nospam.de.comp.lang.iso-c++.091013@th-dorner.de) [Profil]
Datum: 13.10.2009 17:06
Message-ID: <6etyy3miyl.fsf@umbra.opacus>
Newsgroup: de.comp.lang.iso-c++
Hallo,

der folgende (minimierte) Code compiliert anstandslos (auch bei
-pedantic -ansi -Wall -Wextra) mit g++ 3.4.4 / 4.2.4 auf Solaris sowie
g++ 4.3.3 auf Linux.  Ein C++ Code-Analysator stolpert jedoch darüber
und auch der Comeau-Online-Compiler spuckt an der gleichen Stelle eine
Fehlermeldung aus.

-----8<-----
#include <iostream>

template<typename T_TYPE>
class TArray {
T_TYPE array[2];
};

struct t_outer {
struct {
struct t_inner {
char foo[4];
};
TArray<t_inner> bar;
} element;
};

int main() {
t_outer test;
std::cout << sizeof(test) << "\n";
}
-----8<-----

Comeau:
ComeauTest.c(16): error: a template argument may not reference an unnamed type
TArray<t_inner> bar;
^

Wer hat hier Recht, GCC oder Comeau?
(Ich vermute mal letzterer.)
Und wo finde ich dazu was zum genauer Nachlesen im Standard?

(Daß sich das Problem leicht mit einem Namen für die mittlere
struct
korrigieren läßt, weiß ich schon, aber mit einem Verweis
auf den
Standard hat ein Bug-Report deutlich bessere Chancen.)

[ Auf dieses Posting antworten ]

Antworten