【发布时间】:2016-06-13 13:43:32
【问题描述】:
尝试初始化静态地图。从我收集到的其他问题中,它必须在头文件之外完成,并且在 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
【问题讨论】:
-
似乎工作正常,你用什么编译器?
-
5.2,必须是6.1的新特性
标签: c++ c++11 dictionary static