静态映射的下列初始化有区别吗?
static std::map<FunctionID, std::string> enum_string_representation {
{FunctionID.something, "something"}
};
和
static std::map<FunctionID, std::string> enum_string_representation {
{std::make_pair(FunctionID.something, "something")}
};
无差异。map有几种可能的构造函数,你在这两种情况下都使用这个:
map( std::initializer_list<value_type> init,
const Compare& comp = Compare(),
const Allocator& alloc = Allocator() );
value_type
由type std::pair<..,..>
组成,由{FunctionID.something, "something"}
或std::make_pair(FunctionID.something, "something")
组成。
你也可以这样写:
static std::map<FunctionID, std::string> enum_string_representation {
std::make_pair(FunctionID.something, "something")
};