TECA
teca_bad_cast.h
1 #ifndef teca_bad_cast_h
2 #define teca_bad_cast_h
3 
4 #include <exception>
5 #include <string>
6 
7 class teca_bad_cast : public std::exception
8 {
9 public:
10  teca_bad_cast() = delete;
11  ~teca_bad_cast() = default;
12 
13  teca_bad_cast(const std::string &from, const std::string &to);
14 
15  const char* what() const noexcept { return m_what.c_str(); }
16 
17 private:
18  std::string m_what;
19 };
20 
21 template <typename class_t>
22 const std::string safe_class_name(const class_t &o)
23 {
24  return o ? std::string(o->get_class_name()) : std::string("nullptr");
25 }
26 
27 #endif
teca_bad_cast
Definition: teca_bad_cast.h:8