i have exceptions derived std::exception or std::runtime_error. method constructor explicit myexceptionx(const char *text = "") : std::exception(text) {}. there ways make code simpler without use of macro?
class myexception1: public std::exception { public: explicit myexception1(const char *text = "") : std::exception(text) {} }; class myexception2: public std::exception { public: explicit myexception2(const char *text = "") : std::exception(text) {} }; class myexception3: public std::exception { public: explicit myexception3(const char *text = "") : std::exception(text) {} }; //...
there's no need use class when public. can use struct instead. also, can inherit constructors:
struct myexception1: std::exception { using std::exception::exception; }; struct myexception2: std::exception { using std::exception::exception; }; struct myexception3: std::exception { using std::exception::exception; }; also, if need different types, can this:
template <int> struct myexception : std::exception { using std::exception::exception; }; using myexception1 = myexception<1>; using myexception2 = myexception<2>; using myexception3 = myexception<3>; you can use enum instead of int if want more descriptive names.
Comments
Post a Comment