有没有办法确定源代码中 `gcc -std=` 标志的值? [重复]

问题描述 投票:0回答:0

当我使用

gcc
标志时,
macro
是否定义
-std=c++zz
或其他内容?想象一下,我的程序中有一个(很好、简单、快速……)的解决方案,它只能与
g++ -std=c++20
一起使用。不过,我想提供一个(不太好但有效)解决方案,可以与
-std=c++11
或其他东西一起使用。例如:

#ifdef __STD20__
#include <numbers>
const double PI=std::numbers::pi;
#else
const double PI=4.0*atan(1);
#endif

或者我应该在

makefile
中以某种方式处理它?谢谢您的建议。

注意:问题不是关于定义 pi;这只是我能提供的最短的例子。)

c++ gcc c-preprocessor
© www.soinside.com 2019 - 2024. All rights reserved.