将结构初始化为映射值奇怪的行为(Visual Studio)

时间:2016-06-20 11:24:27

标签: c++ visual-studio-2010

我无法将结构初始化为地图值。第一个示例使用enum作为结构的第二个字段。但是第二个例子没有编译。任何人都可以告诉我为什么以及如何解决它?我希望我的结构用一个衬里初始化,因为我将在地图中放入很多价值。

struct ObjectB
{
    std::string name;
    std::string description;
}
std::map<uint8_t, ObjectB> map2= {
    { 0, { "This fails!!", "abc"} },
    { 1, { "This fails!!", "abc"} },
    { 2, { "This fails!!", "abc"} },
    { 3, { "This fails!!", "abc"} }
};

然而第二个

C2398   Element '10': conversion from 'initializer list' to 'std::pair<const _Kty,_Ty>' requires a narrowing conversion

ERROR

/news/{slug}

这似乎与Braced initialisation of std::map member compiler error有关。这表明VS被窃听了。但我现在正在使用VS2015。

0 个答案:

没有答案