gpt4 book ai didi

visual-c++ - 在 VC++ 中由元组索引的 map

转载 作者:行者123 更新时间:2023-12-01 11:57:43 26 4
gpt4 key购买 nike

考虑以下代码:

#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 ,一切正常。这是怎么回事?

最佳答案

a bug in Visual C++ 2010在关联容器(如 std::map)中使用 std::tuple 作为键类型时。

解决方法(在链接的错误报告中提到)是构造一个临时的 std::tuple:

m[K(key)] = 1;

关于visual-c++ - 在 VC++ 中由元组索引的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5314283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com