sizeof für Array dessen Größe von template Parameter bestimmt ist
-
Hallo,
eine Frage an die C++ Experten. Ist folgender Code wirklich nicht C++ Standard-konform, oder spielt mir mein (Elsa) C++ Parser/Type-Checker einen Streich:
template <int SIZE> class Foo { private: int _x[SIZE]; public: Foo() { memset(_x,0,sizeof(_x)); } };Gcc übersetzt das anstandslos, Elsa meckert, dass sizeof nicht geht "of a sizeless array". In dem Standarddokument was ich habe steht meines Erachtens nichts unter sizeof, was das verbietet, oder? Ich müsste das genau wissen.
(dass ich hier auch ohne weiteres: memset(_x,0,sizeof(int)*SIZE) schreiben könnte ist mir klar)
Vielen Dank für jede Hilfe im Voraus!
-
Für einen statischen Array ist sizeof so definiert, wie du es haben willst und sollte d.h. standardknformes C++ sein

-
Vielen Dank für die schnelle Antwort, dann macht wohl Elsa an der Stelle unzureichendes checking.