コンパイラ エラー C2477
'member': 静的データ メンバーは派生クラスを使って初期化できません
テンプレート クラスの静的データ メンバーが正しく初期化されませんでした。 これは、ISO C++ 標準に準拠するための、Visual Studio .NET 2003 より前のバージョンの Microsoft C++ コンパイラの破壊的変更です。
次の例では C2477 が生成されます。
// C2477.cpp
// compile with: /Za /c
template <class T>
struct S {
static int n;
};
struct X {};
struct A: S<X> {};
int A::n = 0; // C2477
template<>
int S<X>::n = 0;