当我使用
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;这只是我能提供的最短的例子。)