【发布时间】:2019-07-06 00:55:12
【问题描述】:
我正在用 gcc 编译我的代码,使用 -Wall -Wextra -Wpedantic 开关和非扩展标准集(比如 -std=c++14)。但是 - 我想对该规则做一个例外并使用__int128。这给了我一个警告:
warning: ISO C++ does not support ‘__int128’ for ‘hge’ [-Wpedantic]
我可以隐藏关于__int128 的特定警告吗?或者,我可以在使用这种类型之前和之后暂时抑制-Wpedantic吗?
【问题讨论】:
-
您是否添加了
-std=标志来选择特定的C++ 标准?请告诉我们您传递给编译器的所有标志。 -
@Someprogrammerdude:已编辑。
-
我做了更多的实验。最初的答案有点混乱,因为正确使用
__extension__有点不直观。答案通过简单的解决方案进行了修正。 -
使用
-std=c++14,您可以告诉编译器更严格地遵守 C++ 标准,而无需 GCC 扩展。尝试例如-std=gnu++14改为启用 GCC 扩展。 -
@Someprogrammerdude:我想要遵守 C++ 标准。
gnu++14将允许与标准相矛盾的代码,而__int128未标准化,但 AFAICT 是“合法”扩展。
标签: c++ gcc compiler-warnings int128