我声明了一个从字符串映射到一对成对的map,如下所示:
std::map<std::wstring,
std::pair<std::pair<long, long>,
std::pair<long, long>>> reference;
我将其初始化为:
reference.insert(L"First",
std::pair<std::pair<long, long>,
std::pair<long, long>>(std::pair<long, long>(-1, -1),
std::pair<long, long>(0, 0)));
然而,Visual C++ 给我报了一个错误 "C2664,没有可接受该源类型的构造函数,或者构造函数重载解析不明确"。
我刚开始使用模板和STL,无法确定自己错在哪里。
std::make_pair
使其易于阅读。 - GManNickGstd::tr1::tuple
,这样就不需要嵌套所有的std::pair
了。Boost 也有一个 tuple 实现。 - Praetorian