aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/lib/exception.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mpm/lib/exception.cpp')
-rw-r--r--mpm/lib/exception.cpp53
1 files changed, 32 insertions, 21 deletions
diff --git a/mpm/lib/exception.cpp b/mpm/lib/exception.cpp
index 89883a980..9d3692933 100644
--- a/mpm/lib/exception.cpp
+++ b/mpm/lib/exception.cpp
@@ -10,26 +10,37 @@
using namespace mpm;
-exception::exception(const std::string &what):
- std::runtime_error(what){/* NOP */}
+exception::exception(const std::string& what) : std::runtime_error(what)
+{ /* NOP */
+}
-#define make_exception_impl(name, class, base) \
- class::class(const std::string &what): \
- base(str(boost::format("%s: %s") % name % what)){} \
- unsigned class::code(void) const{return std::hash<std::string>()(#class) & 0xfff;} \
- class *class::dynamic_clone(void) const{return new class(*this);} \
- void class::dynamic_throw(void) const{throw *this;}
-
-make_exception_impl("AssertionError", assertion_error, exception)
-make_exception_impl("LookupError", lookup_error, exception)
-make_exception_impl("IndexError", index_error, lookup_error)
-make_exception_impl("KeyError", key_error, lookup_error)
-make_exception_impl("TypeError", type_error, exception)
-make_exception_impl("ValueError", value_error, exception)
-make_exception_impl("RuntimeError", runtime_error, exception)
-make_exception_impl("NotImplementedError", not_implemented_error, runtime_error)
-make_exception_impl("EnvironmentError", environment_error, exception)
-make_exception_impl("IOError", io_error, environment_error)
-make_exception_impl("OSError", os_error, environment_error)
-make_exception_impl("SystemError", system_error, exception)
+#define make_exception_impl(name, class, base) \
+ class ::class(const std::string& what) \
+ : base(str(boost::format("%s: %s") % name % what)) \
+ { \
+ } \
+ unsigned class ::code(void) const \
+ { \
+ return std::hash<std::string>()(#class) & 0xfff; \
+ } \
+ class* class ::dynamic_clone(void) const \
+ { \
+ return new class(*this); \
+ } \
+ void class ::dynamic_throw(void) const \
+ { \
+ throw *this; \
+ }
+make_exception_impl("AssertionError", assertion_error, exception) make_exception_impl(
+ "LookupError", lookup_error, exception) make_exception_impl("IndexError",
+ index_error,
+ lookup_error) make_exception_impl("KeyError", key_error, lookup_error)
+ make_exception_impl("TypeError", type_error, exception) make_exception_impl(
+ "ValueError", value_error, exception)
+ make_exception_impl("RuntimeError", runtime_error, exception) make_exception_impl(
+ "NotImplementedError", not_implemented_error, runtime_error)
+ make_exception_impl("EnvironmentError", environment_error, exception)
+ make_exception_impl("IOError", io_error, environment_error)
+ make_exception_impl("OSError", os_error, environment_error)
+ make_exception_impl("SystemError", system_error, exception)