24#define mthrow(arg) (throw mexception(arg, true, __FILE__, __LINE__))
27#define mthrow1(arg) (throw mexception(arg, false, __FILE__, __LINE__))
30#define mthrow2(arg) (throw mexception(arg, false, "", 0))
36 std::runtime_error(arg) {
45 trace_buf << std::endl <<
"Stack trace:" << std::endl;
50 for (
int i = 1;
i <
n;
i++) {
56 snprintf(buf,
sizeof(buf),
"%-3d 0x%018lX %s + %zd\n",
62 snprintf(buf,
sizeof(buf),
"%-3d 0x%018lX\n",
87static_assert(std::is_nothrow_copy_constructible<mexception>::value,
88 "mexception must be nothrow copy constructible");
const char * what() const
mexception(const std::string &arg, bool stack_trace, const char *file, int line)
friend std::ostream & operator<<(std::ostream &output, mexception &m)
mexception(const mexception &ex) noexcept
static void output(code_int code)
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)