我有一个目前针对gcc 7.2的c ++ 14项目,并且我正在寻找从针对c ++ 17的项目中移植代码的方法。该项目广泛使用了if constexpr
。 gcc 7.2使用--std = c ++ 1z标志支持if constexpr
,但是它同时具有其他所有(当时)实验性的C ++ 17功能。
是否有一种方法可以在gcc 7.2中仅启用特定的语言功能(在本例中为if constexpr
)?
答案 0 :(得分:2)
否,这是不可能的。是全有还是全无。
在g ++中,对语言方言的控制水平有限 How to Run External Commands and Programs Locally and Remotely from JMeter
如果使用了这些方言,它会发出警告,并且您可以将该警告转变为错误。
另一种方法可能是创建用于clang-tidy或clang-query的插件,以检查您的C ++代码库不使用您不需要的任何构造,但是要达到预期的目的将是一项相当大的工作。