GCC weigert sich
-
struct test { char foo () { return 0; } enum {value= sizeof(foo())}; }; int main(int argc, char *argv[]) { cout << test::value << nl; }
wenn die funktion test::foo global ist, gibt's keine Probleme! Wieso ?
die fehlermeldungen sind:Führt make... aus
g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++" -I"C:/Dev-Cpp/include" main.cpp:15: invalid use of undefined type
struct test' main.cpp:9: forward declaration of
struct test'
main.cpp:15: enumerator value for `value' not integer constantZeile neun ist die Zeile
struct test {Zeile 15:
enum {value=sizeof(foo())};
-
struct test { struct inner { static char foo () { return 0; } }; enum {value= sizeof(inner::foo())}; }; int main(int argc, char *argv[]) { cout << test::value << nl; }
-
danke