在C++中,有什么方法可以以类似于嵌套typedef的方式定义类中的嵌套宏/常量,还是可以实现相似功能的方法?动机通常是由模板使用宏。

class SomeClass
{
public:
    #define SomeConstant 123
};

int x=SomeClass::SomeConstant;

当然,静态const成员可以胜任,但这些都是物理变量,而我正在寻找简单的类似于宏的行为。

最佳答案

您无法使用宏执行所需的操作。宏没有作用域的概念。

但是对于简单的int值,您可以使用枚举完成您想做的事情。

class SomeClass
{
public:
    enum {
        SomeConstant=123
        };
};

int x=SomeClass::SomeConstant;

该值的全范围名称,但即使在调试版本中也不占用任何空间-如果需要,您不能使用其地址。

09-19 05:23