Compiler Error C3366
'variable' : static data members of managed or WinRTtypes must be defined within the class definition
You attempted to reference a static member of a WinRT or .NET class or interface outside the definition of that class or interface.
The compiler needs to know the full definition of the class (to emit the meta-data after one pass) and requires static data members to be initialized within the class.
For example, the following example generates C3366 and shows how to fix it:
// C3366.cpp
// compile with: /clr /c
ref class X {
public:
static int i; // initialize i here to avoid C3366
};
int X::i = 5; // C3366
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for