是否可以在gcc中只启用特定的C++语言功能

Is it possible to enable only specific C++ language features in gcc?

本文关键字:C++ 功能 语言 启用 gcc 是否      更新时间:2023-10-16

我有一个目前以gcc 7.2为目标的c++14项目,我正在寻找一个以c++17为目标的项目的后端代码。本项目广泛使用if constexpr。gcc 7.2支持带有--std=c++1z标志的if constexpr,但它带来了所有其他(当时(实验性的c++17特性。

有没有办法在gcc 7.2中只启用特定的语言功能,在本例中为if constexpr

不,这是不可能的。要么全有要么全无。

对g中的语言方言有一定程度的控制++https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html

如果使用这些方言,它可能会发出警告,并且您可以将此警告转化为错误。

另一种方法可以是为clang整洁或clang查询创建插件,以检查您的C++代码库是否使用任何您不想要的构造,但要达到预期目的,这将是一项相当大的工作。