繁体   English   中英

为什么 C++20 的 std::is_integral<__uint128_t> 为 false?

[英]Why is std::is_integral<__uint128_t> false with C++20?

我正在尝试将遗留应用程序升级到 C++20,但在 GCC 11.1.0 上遇到了没有 --std=c++20 就不会失败的错误:

static_assert(std::is_integral_v<__uint128_t>, "Error: non-integral type");

为什么它只在 C++20 上失败,我该怎么做才能修复它?

std::integral_v询问类型是否是内置或实现定义的“扩展 integer 类型”之一。 GCC 不支持扩展 integer 类型。

因此,根据规则,标准 C++ 应该是假的。

static_assert将使用-std=gnu++20进行编译,这会启用许多非标准行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM