首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在std中按类型访问::具有重复类型的元组应产生编译错误

在std中按类型访问::具有重复类型的元组应产生编译错误
EN

Stack Overflow用户
提问于 2021-07-12 07:47:40
回答 1查看 95关注 0票数 5

根据标准(或至少对优先选择),std::get for std::tuple应:

5-8)提取类型为T的元组t的元素,除非元组恰好有该类型的一个元素,否则无法编译。

因此,我将这句话解释为这段代码不编译:

代码语言:javascript
复制
std::tuple<int, int> my_record;
std::get<int>(my_record) = 10;

因为存在两个相同的类型,所以我尝试按类型访问元组。然而,GCC an Clang都正确地编译了这段代码,并产生了修改第一个元素的效果。.

为什么?我是不是误解了引用上的句子?引用错了吗?GCC和Clang不尊重标准吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-12 07:56:43

看上去像GCC 11的漏洞,考虑归档吧。这是标准的重要部分

您可以在Clang中看到它,因为在gcc.godbolt.org上默认使用GCC的标准库。如果添加-stdlib=libc++以使用它自己的标准库,则它拒绝编译它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68343712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档