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