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);
88 IEX_EXPORT const std::string& stackTrace ()
const noexcept;
92 std::string _stackTrace;
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 () \
119 exp name::name (const char* text) : base (text) \
121 exp name::name (const std::string& text) : base (text) \
123 exp name::name (std::string&& text) : base (std::move (text)) \
125 exp name::name (std::stringstream& text) : base (text) \
127 exp name::name (const name& other) : base (other) \
129 exp name::name (name&& other) noexcept : base (other) \
131 exp name& name::operator= (name& other) \
133 base::operator= (other); \
136 exp name& name::operator= (name&& other) noexcept \
138 base::operator= (other); \
141 exp name::~name () noexcept \
145 #define DEFINE_EXC(name, base) DEFINE_EXC_EXP (, name, base)
176 IEX_EXPORT, NoImplExc,
BaseExc)
215 typedef std::
string (*StackTracer) ();
218 IEX_EXPORT StackTracer stackTracer ();
222 #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)
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()