考虑以下用于 GNU 扩展的类型特征的小型测试程序__uint128_t
#include <limits>
#include <type_traits>
using uint128_t = __uint128_t;
int main()
{
static_assert(std::is_unsigned<uint128_t>{}, "");
static_assert(std::is_integral<uint128_t>{}, "");
static_assert(std::numeric_limits<uint128_t>::digits == 128, "");
}
这适用于 g++ 和 libstdc++(工作示例)以及 clang++ 和 libc++(工作示例),但不适用于 clang++ 和 libstdc++(失败示例)的组合。
请注意,在所有 3 种情况下,我都使用该-std=gnu++1z
标志。
问题:哪种命令行参数组合可以使用 libstdc++ 成功编译我的 clang++ 测试程序?