这是一个类的宏定义还是它究竟是什么?
#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) {}; \
}
答案 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)
它是异常的宏,用标准构造函数创建异常。