按类型访问具有重复类型的std::tuple应该会产生编译错误

根据标准(或至少cppreference), std::tuple 的 std::get 应:

5-8) 提取类型为 T 的元组 t 的元素。编译失败,除非元组正好有一个该类型的元素。

所以我解释这句话,使得这段代码不能编译:

std::tuple<int, int> my_record;
std::get<int>(my_record) = 10;

因为存在两种相同的类型,我尝试按类型访问元组。但是,GCC 和 Clang 都正确编译了这段代码,并产生了修改第一个元素的效果。

为什么?我是否误解了参考文献中的句子?引用错了吗?GCC 和 Clang 不尊重标准吗?

以上是按类型访问具有重复类型的std::tuple应该会产生编译错误的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>