私はC++で静的マップを初期化する方法を探していて、次のコードを見つけました:
struct A{
static map<int,int> create_map()
{
map<int,int> m;
m[1] = 2;
m[3] = 4;
m[5] = 6;
return m;
}
static const map<int,int> myMap;
};
const map<int,int> A:: myMap = A::create_map();
ただし、最後の行をに変更すると
const static map<int,int> A:: myMap = A::create_map();
コンパイラの苦情:静的データメンバーを(宣言するのではなく)定義するときに「静的」を使用できない場合があります」?
なんでだろう?この背後にある論理または理由は何ですか?