コンパイラの警告 (レベル 2) C4356
'member': 静的データ メンバーは派生クラスを使って初期化できません
静的データ メンバーの初期化の形式が正しくありませんでした。 コンパイラは初期化を受け入れました。 警告を回避するには、基底クラスを使用してメンバーを初期化します。
この警告が表示されないようにするには、warning pragma を使用します。
次の例では C4356 が生成されます。
// C4356.cpp
// compile with: /W2 /EHsc
#include <iostream>
template <class T>
class C {
static int n;
};
class D : C<int> {};
int D::n = 0; // C4356
// try the following line instead
// int C<int>::n = 0;
class A {
public:
static int n;
};
class B : public A {};
int B::n = 10; // C4356
// try the following line instead
// int A::n = 99;
int main() {
using namespace std;
cout << B::n << endl;
}