簡體   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