根据标准(或至少cppreference), std::tuple 的 std::get 应:
5-8) 提取类型为 T 的元组 t 的元素。编译失败,除非元组正好有一个该类型的元素。
所以我解释这句话,使得这段代码不能编译:
std::tuple<int, int> my_record;
std::get<int>(my_record) = 10;
Run Code Online (Sandbox Code Playgroud)
因为存在两种相同的类型,我尝试按类型访问元组。但是,GCC 和 Clang 都正确编译了这段代码,并产生了修改第一个元素的效果。
为什么?我是否误解了参考文献中的句子?引用错了吗?GCC 和 Clang 不尊重标准吗?
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |