我需要用两个不同的库编译相同的代码。一个允许对象为 const,另一个不允许。现在实施的解决方案如下所示:
#ifdef (OLDLIB)
ClassFoo TheFoo = Bar();
#else
const ClassFoo TheFoo = Bar();
#endif
这在不同的类中被多次使用并妨碍了可读性。我想在其他地方进行区分。
我想有人会说:
#ifdef (OLDLIB)
#define CLASS_FOO ClassFoo
#define CLASS_BAR ClassBar
#else
#define CLASS_FOO const ClassFoo
#define CLASS_BAR const ClassBar
#endif
CLASS_FOO TheFoo = Bar();
CLASS_BAR TheBar = FooBar();
但我不喜欢预处理器的东西。是否有一种不错的 C++ 方式来完成上述操作?谢谢。
更新 1:正如 Peter Wood 所说,可以将它们实例化为非常量。我改了句。