diff options
author | Josh Blum <josh@joshknows.com> | 2011-06-24 15:22:55 -0700 |
---|---|---|
committer | Josh Blum <josh@joshknows.com> | 2011-06-24 15:22:55 -0700 |
commit | 09ed8e69312cebe31b69af4f42a3b0417774cf04 (patch) | |
tree | d6b0401308b8fb3e4c8666ea002393b563ecc99c /host/lib/exception.cpp | |
parent | 90271a6f6ef43ed6afa617ba74a70fbeb468e8f7 (diff) | |
download | uhd-09ed8e69312cebe31b69af4f42a3b0417774cf04.tar.gz uhd-09ed8e69312cebe31b69af4f42a3b0417774cf04.tar.bz2 uhd-09ed8e69312cebe31b69af4f42a3b0417774cf04.zip |
uhd: added dynamic throw and clone to exceptions
Diffstat (limited to 'host/lib/exception.cpp')
-rw-r--r-- | host/lib/exception.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/host/lib/exception.cpp b/host/lib/exception.cpp index ecb1fe768..ea056bd3b 100644 --- a/host/lib/exception.cpp +++ b/host/lib/exception.cpp @@ -27,7 +27,9 @@ exception::exception(const std::string &what): #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 boost::hash<std::string>()(#class) & 0xfff;} + unsigned class::code(void) const{return boost::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) |