首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何抑制“C++不支持‘__int128’警告?”

如何抑制“C++不支持‘__int128’警告?”
EN

Stack Overflow用户
提问于 2019-02-12 11:23:53
回答 1查看 2.4K关注 0票数 8

我正在用gcc编译我的代码,用的是-Wall -Wextra -Wpedantic交换机和一个非扩展的标准集(比如它是-std=c++14)。但是-我想对这个规则做一个例外,并使用__int128。这给我一个警告:

代码语言:javascript
复制
warning: ISO C++ does not support ‘__int128’ for ‘hge’ [-Wpedantic]

我可以抑制有关__int128的特定警告吗?或者,在使用此类型之前和之后,我是否可以暂时禁用-Wpedantic

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-12 11:41:34

如果我们咨询-Wpedantic,我们可以注意到以下几点:

__extension__后面的表达式中也禁用了迂腐的警告。

快速小试显示,即使在标志下,也可以按预期定义变量:

代码语言:javascript
复制
__extension__ __int128 hge{};

当然,如果我们打算经常使用这种类型,这是相当麻烦的。要使这个问题不那么棘手,方法是使用类型别名。虽然我们在这里需要小心,但是属性必须在完整的声明之前

代码语言:javascript
复制
__extension__ typedef __int128 int128;

你可以看到它在工作,这里

另一种方法是围绕类型别名使用诊断语用,这种方法遵循您最初的思路:

代码语言:javascript
复制
namespace my_gcc_ints {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
    using int128 = __int128;
#pragma GCC diagnostic pop
}

也是效果相当好

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

https://stackoverflow.com/questions/54649040

复制
相关文章

相似问题

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