[英]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.