Fragensteller
Statische Memberdeklaration in einer Union Class

Frage
-
Hey Leute,
in Visual Studio 2008 war es noch möglich, Statische Memberdeklaration in einer Union Klasse zu deklarieren. Bei Visual Studio 2010 sagt die IDE mir, das dies nicht möglich sei. Aber ich brauche diese Deklarationen. Wie kann ich das Problem lösen.
Bitte um Rat.
Dankeschön!Mit freundlichen Grüßen
Matthias LeschCode-Beispiel:
union Test-Class { static const int TEST_1 = 1; static const Test::test1 TEST_TEST_1 = 2; static const Test::test2 TEST_TEST_2 = TEST_TEST_1 + (1<<TEST_1); enum State { State1, State2, }; struct { unsigned state : 5; unsigned teststate : 1; }; unsigned __int16 union_value; };
- Verschoben Tom Lambert (Koopakiller) Sonntag, 12. Mai 2013 20:32 C++ Thema
- Bearbeitet Matthias Lesch Sonntag, 12. Mai 2013 22:15 Fehler-Behebung
Alle Antworten
-
Das scheint "nur " ein Fehler in der Intellisense zu sein... Folgendes lässt sich bei mir korrekt compilieren:
#include <windows.h> #include <stdio.h> #include <tchar.h> union Test_Class { static const int TEST_1 = 1; struct { unsigned state : 5; unsigned teststate : 1; }; unsigned __int16 union_value; }; int _tmain() { }
Lass Dich also nicht durch die IDE drausbringen...
Hab dazu ein Bug angelegt:
https://connect.microsoft.com/VisualStudio/feedback/details/786816/wrong-message-for-union-intellisense-static-data-member-declaration-is-not-allowed-in-this-class
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Martin RichterModerator Montag, 13. Mai 2013 07:45