我注意到这篇文章中的一些回复: Difference between "&&" and "and" operators
请注意,某些编译器不支持“ and”关键字(https://en.cppreference.com/w/cpp/keyword)。
所以我的问题是,一般是否有办法检测编译器中是否存在关键字? 编辑:我只是好奇可能会检测到它的检测习惯用法。
编辑:我已经尝试了SFINAE几种不同的方法,但是正如chris指出的那样,它似乎无法按预期工作。而且这种方法可能是不可能的。
-
我尝试了此操作,但由于我无法定义关键字而导致错误...
#ifndef and
#define and &&
#endif
#ifndef or
#define or ||
#endif
GCC错误:“和”不能用作宏名,因为它是C ++中的运算符
-
这个问题是出于好奇而不是必要,因此仅使用&&之类的回答并不是很有帮助。这可能在检测co_await,co_yield或类似情况时特别有用。
由于可能还有其他人希望检测关键字的存在,我认为作为一个单独的问题会更有用,因为它与&&运算符没有特别的联系。