如何修复错误消息,如“缺少类模板的参数列表”?

时间:2019-03-31 23:35:18

标签: c++ templates c++17

好的,我尝试寻找与我的问题有关的其他解决方案,但找不到该解决方案。我正在使用Visual Studio 2017,正在看教程,而他正在使用linux,但是这段代码来自一本书。我的问题是我收到以下错误消息:

  

“缺少类模板“ std :: iterator”的参数列表”

     

“成功不能推断出“自动”类型(需要初始化)”

     

“标识符“键”未定义”

     

“标识符” b“未定义,预期为']'

     

“计数不能推断出“自动”类型(需要初始化)”

这是我的代码的一部分:

list<billionaire> billionaires{
{"Bill Gates", 86.0, "USA"},
{"Warren Buffet", 75.6, "USA"},
{"Jeff Bezos", 72.8, "USA"},
};

std::map<std::string, std::pair<const billionaire, std::size_t>> m;

for (const auto &b : billionaires) {
    auto[iterator, success] = m.try_emplace(b.country, b, 1); //iterator and success are underlined red

    if (!success) {
        iterator->second.second += 1;
    }
}

for (const auto &[key, value] : m) { // key underlined red
    const auto &[b, count] = value; //b and count underlined red

    cout << b.country << " : " << count << " billionaires. Richest is "
        << b.name << " with " << b.dollars << " B$\n";
}

1 个答案:

答案 0 :(得分:0)

我通过右键单击项目名称来解决问题,然后转到“属性”>“ C / C ++”>“语言”>“ C ++语言标准”>,然后选择“ ISO C ++最新草稿标准(/ std:c ++ latest)”。似乎有些设置在更新时已更改。