C ++宏定义不清楚

时间:2010-06-03 13:09:14

标签: c++ macros

这是一个类的宏定义还是它究竟是什么?

#define EXCEPTIONCLASS_IMPLEMENTATION(name, base, string) : public base     \
    {                                                               \
public:                                                                 \
    name() : base(string) {}                                            \
    name(const x::wrap_exc& next) : base(string,next) {};               \
    name(const x::wrap_exc& prev, const x::wrap_exc& next) :            \
        base(prev, next) {};                                            \
}

2 个答案:

答案 0 :(得分:9)

异常类的宏定义。

看起来有人希望你写这样的代码:

class my_exception EXCEPTIONCLASS_IMPLEMENTATION(my_exception, std::exception, "What a mess!")

预处理器将吐出:

class my_exception : public std::exception { public: my_exception() : std::exception("What a mess!") {} my_exception(const x::wrap_exc& next) : std::exception("What a mess!",next) {}; my_exception(const x::wrap_exc& prev, const x::wrap_exc& next) : std::exception(prev, next) {}; }
  

究竟是什么?

这是令人厌恶的!

答案 1 :(得分:3)

它是异常的宏,用标准构造函数创建异常。