示例代码是:
#include <unordered_map>
int main() {
std::unordered_map<int, std::pair<int, int>> map;
map.emplace(1, {1, 1});
return 0;
}
哪里emplace()
有签名,例如:
template <class... _Args>
pair<iterator, bool> emplace(_Args&&... __args);
该gcc
说的功能expectes 0参数- 2提供的。该clang
说,函数需要1个参数- 2提供的。
我什至不明白-这段代码是什么问题?
问题在于这{1, 1}
不是表达式,也没有类型。由于没有类型,因此无法推导到模板参数列表中。它们都不是正确的,因为问题与提供的参数数量无关。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句