6 #ifndef INCLUDED_IEXBASEEXC_H
7 #define INCLUDED_IEXBASEEXC_H
52 IEX_EXPORT virtual const char* what ()
const noexcept;
58 IEX_EXPORT BaseExc& assign (std::stringstream& s);
61 IEX_EXPORT BaseExc& append (std::stringstream& s);
100 #define DEFINE_EXC_EXP(exp, name, base) \
101 class IEX_EXPORT_TYPE name : public base \
105 exp name (const char* text); \
106 exp name (const std::string& text); \
107 exp name (std::string&& text); \
108 exp name (std::stringstream& text); \
109 exp name (const name& other); \
110 exp name (name&& other) noexcept; \
111 exp name& operator= (name& other); \
112 exp name& operator= (name&& other) noexcept; \
113 exp ~name () noexcept; \
116 #define DEFINE_EXC_EXP_IMPL(exp, name, base) \
117 exp name::name () : base () {} \
118 exp name::name (const char* text) : base (text) {} \
119 exp name::name (const std::string& text) : base (text) {} \
120 exp name::name (std::string&& text) : base (std::move (text)) {} \
121 exp name::name (std::stringstream& text) : base (text) {} \
122 exp name::name (const name& other) : base (other) {} \
123 exp name::name (name&& other) noexcept : base (other) {} \
124 exp name& name::operator= (name& other) \
126 base::operator= (other); \
129 exp name& name::operator= (name&& other) noexcept \
131 base::operator= (other); \
134 exp name::~name () noexcept {}
137 #define DEFINE_EXC(name, base) DEFINE_EXC_EXP (, name, base)
168 IEX_EXPORT, NoImplExc,
BaseExc)
207 typedef std::
string (*StackTracer) ();
210 IEX_EXPORT StackTracer stackTracer ();
214 #endif // INCLUDED_IEXBASEEXC_H
BaseExc BaseExc BaseExc BaseExc DEFINE_EXC_EXP(IEX_EXPORT, TypeExc, BaseExc) typedef std IEX_EXPORT void setStackTracer(StackTracer stackTracer)
GLuint GLsizei const GLchar * message
#define DEFINE_EXC_EXP(exp, name, base)
GLsizei const GLchar *const * string
OIIO_FORCEINLINE const vint4 & operator+=(vint4 &a, const vint4 &b)
BaseExc BaseExc BaseExc NullExc
#define IEX_INTERNAL_NAMESPACE_HEADER_ENTER
LeafData & operator=(const LeafData &)=delete
#define IEX_INTERNAL_NAMESPACE_HEADER_EXIT
IEX_EXPORT StackTracer stackTracer()