【发布时间】:2011-03-15 15:49:15
【问题描述】:
考虑以下代码:
#include <tuple>
template <typename Map, typename K>
void mymapfunc(Map& m, const K& key)
{
m[key] = 1;
}
void f()
{
typedef std::tuple<int,int> Pair;
std::map<Pair,int> m;
mymapfunc(m, Pair(1,2));
}
此代码在 VC++ 2010 中失败,但在 gcc 4.5 中编译良好(没有使用 -Wall 和 -pedantic 的警告)。错误在<tuple> 内部的某个地方,很难破译。
如果将std::tuple 更改为std::pair,则一切正常。这是怎么回事?
【问题讨论】:
标签: visual-c++ c++11 tuples