【发布时间】:2012-09-06 11:55:03
【问题描述】:
嗨,我有静态 std::map 和一些值和静态迭代器到这样的默认元素并同时初始化两者:
在.h文件中
class foo
{
static std::map<std::string, int> sqlenumToInt;
static std::map<std::string, int> initEnumToInt();
static std::map<std::string, int>::iterator defaultIt;
};
在 .c 文件中
std::map<std::string, int> foo::sqlenumToInt = initEnumToInt();
std::map<std::string, int> foo::defaultIt = std::map<std::string, int>::iterator();
std::map<std::string, int> foo::initEnumToInt();
{
std::map<std::string, int> test;
defaultIt = test.insert(std::make_pair("a", 0)).first
test["b"] = 2;
test["c"] = 3;
test["d"] = 4;
return test;
}
静态变量的默认初始化顺序是什么。将默认它只是 std::map::iterator() 或迭代器到 sqlenumToInt 的第一个元素??
【问题讨论】:
标签: c++ static initialization