尝试初始化静态地图。从我收集的其他问题来看,它必须在头文件之外完成,并且在C++ 11中可以使用统一初始化来完成。但是,当我尝试使用其他静态成员,我得到的问题:使用静态成员初始化静态地图
了foo.h:
#include <map>
class TestSuite {
static constexpr int x = 3;
static std::map<int, int> v;
};
Foo.cpp中:
#include "foo.h"
std::map<int, int> TestSuite::v = {{x, 5}};
int main() {
TestSuite t;
}
然后我得到的错误
In function `__static_initialization_and_destruction_0(int, int)':
foo.cpp:(.text+0x4b): undefined reference to `TestSuite::x'
collect2: error: ld returned 1 exit status
似乎正常工作,你使用什么编译器? – IceFire
5.2,必须是6.1中的一项新功能 – acornellier