我正在寻找在 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();
编译器投诉:在定义(而不是声明)静态数据成员时可能不会使用“静态””?
我想知道为什么?这背后的逻辑或推理是什么?