在C++ 03中定义覆盖是否合法

qdi*_*dii 1 c++ c++11 c++03

我们有一个使用许多C++ 11工具的项目,我们考虑过这个技巧,使它在C++ 03上编译.

#ifndef USE_CPP0X
#    define override
#endif
Run Code Online (Sandbox Code Playgroud)

据我所知,禁止定义C++关键字,这是合法的吗?

Som*_*ude 6

这有点令人不悦,但它肯定是可能的.一个更好但不那么皱眉的变体是在所有大字母中定义宏,类似于

#ifndef USE_CPP0x
#  define OVERRIDE
#else
#  define OVERRIDE override
#endif
Run Code Online (Sandbox Code Playgroud)

然后记得用OVERRIDE而不是override想要的地方.