c++ - 在C++03中定义override是否合法

标签 c++ c++11 c++03

我们有一个使用许多 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/

相关文章:

c++ - 处理赋值运算符重载;你能重新分配一个引用吗?

c++ - 改变这个指针指向的值

c++ - thread.join 期间出现段错误

c++ - 用常量值填充 std::vector<double>

c++ - 将数组放入另一个数组

c++ - 后增量与效率的对比C++中的预增量

c++ - 宏函数调用缺少参数警告,即使给定了参数

c++ - 无法在 Code::Blocks 中完成 C++11 的 `auto` 变量

c++ - 如何防止从 c++03 中的类型派生?

c++ - 有没有办法在c++03中模拟c++11 'override'说明符的效果?