我们有一个使用许多 C++11 工具的项目,我们考虑了这个技巧让它在 C++03 上编译。
#ifndef USE_CPP0X
# define override
#endif
据我所知,C++ 关键字是禁止定义的,这样合法吗?
最佳答案
这有点让人不悦,但它确实是可能的。一个更好但不那么令人不悦的变体是在所有大字母中定义宏,比如
#ifndef USE_CPP0x
# define OVERRIDE
#else
# define OVERRIDE override
#endif
然后记得在需要的地方使用OVERRIDE
而不是override
。
关于c++ - 在C++03中定义override是否合法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9928040/