6 #ifndef INCLUDED_IEXBASEEXC_H
7 #define INCLUDED_IEXBASEEXC_H
47 IEX_EXPORT BaseExc & operator = (
const BaseExc& be);
48 IEX_EXPORT BaseExc & operator = (BaseExc&& be) noexcept;
54 IEX_EXPORT virtual const char * what ()
const noexcept;
61 IEX_EXPORT BaseExc & assign (std::stringstream &s);
62 IEX_EXPORT BaseExc & operator = (std::stringstream &s);
64 IEX_EXPORT BaseExc & append (std::stringstream &s);
74 IEX_EXPORT BaseExc & operator = (
const char *s);
106 #define DEFINE_EXC_EXP(exp, name, base) \
107 class IEX_EXPORT_TYPE name: public base \
111 exp name (const char* text); \
112 exp name (const std::string &text); \
113 exp name (std::string &&text); \
114 exp name (std::stringstream &text); \
115 exp name (const name &other); \
116 exp name (name &&other) noexcept; \
117 exp name& operator = (name &other); \
118 exp name& operator = (name &&other) noexcept; \
119 exp ~name() noexcept; \
122 #define DEFINE_EXC_EXP_IMPL(exp, name, base) \
123 exp name::name () : base () {} \
124 exp name::name (const char* text) : base (text) {} \
125 exp name::name (const std::string& text) : base (text) {} \
126 exp name::name (std::string&& text) : base (std::move (text)) {} \
127 exp name::name (std::stringstream& text) : base (text) {} \
128 exp name::name (const name &other) : base (other) {} \
129 exp name::name (name &&other) noexcept : base (other) {} \
130 exp name& name::operator = (name &other) { base::operator=(other); return *this; } \
131 exp name& name::operator = (name &&other) noexcept { base::operator=(other); return *this; } \
132 exp name::~name () noexcept {}
135 #define DEFINE_EXC(name, base) DEFINE_EXC_EXP(, name, base)
199 typedef std::
string (* StackTracer) ();
202 IEX_EXPORT StackTracer stackTracer ();
207 #endif // INCLUDED_IEXBASEEXC_H
GLuint GLsizei const GLchar * message
#define DEFINE_EXC_EXP(exp, name, base)
GLsizei const GLchar *const * string
BaseExc BaseExc BaseExc BaseExc DEFINE_EXC_EXP(IEX_EXPORT, TypeExc, BaseExc) typedef std IEX_EXPORT void setStackTracer(StackTracer stackTracer)
OIIO_FORCEINLINE const vint4 & operator+=(vint4 &a, const vint4 &b)
BaseExc BaseExc BaseExc NullExc
#define IEX_INTERNAL_NAMESPACE_HEADER_ENTER
#define IEX_INTERNAL_NAMESPACE_HEADER_EXIT
IEX_EXPORT StackTracer stackTracer()