4 #include <libsex/utility.hxx> // Needed in ERR_INST.
6 /// Macro for defining exception classes (.hxx).
7 #define ERR_DEFINE(parent, name) \
8 class name : public parent\
11 static const char* const TEMPLATE;\
12 name(const char* const errorMessage);\
15 /// Macro for implementing exception classes (.cxx).
16 #define ERR_IMPL(parent, name, message) \
17 const char* const name::TEMPLATE = message;\
19 name::name(const char* const errorMessage)\
20 : parent(errorMessage)\
25 * Macro for instantiating an exception with a formatted
28 #define ERR_INST(type, var, args...) \
29 type var = libsex::formatted<type>(__FILE__, __LINE__, args);