Я искал способы инициализации статической карты в С++ и нашел этот код:
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();
Жалобы компилятора: "static" не может использоваться при определении (в отличие от объявления) статического члена данных "?
Интересно, почему? Какая логика или рассуждение позади этого?