Added creation macros and their tests.
[libsex.git] / include / libsex / create.hxx
blobbae9ba303708aeb060895a267574e58cd085c37f
1 #ifndef CREATE_HXX
2 #define CREATE_HXX
4 #include <libsex/utility.hxx> // Needed in ERR_INST.
6 #define ERR_DEFINE(parent, name) \
7 class name : public parent\
8 {\
9 public:\
10 static const char* const TEMPLATE;\
11 name(const char* const errorMessage);\
14 #define ERR_IMPL(parent, name, message) \
15 const char* const name::TEMPLATE = message;\
17 name::name(const char* const errorMessage)\
18 : parent(errorMessage)\
22 #define ERR_INST(type, var, args...) \
23 type var = libsex::formatted<type>(__FILE__, __LINE__, args);
25 #endif