D
Задачка на ночь.
Есть код
template <class Exc, class... Types>
[[noreturn]] __declspec(noinline) void throw_exception(Types&&... args) {
throw Exc(forward<Types>(args)...);
}
template <class Exc, class Ty, class... Types>
static void throw_exception_if_not(const Ty& cond, Types&&... args) {
if (!cond) {
throw_exception<Exc>(forward<Types>(args)...);
}
}
В некоторой функции после вызова
throw_exception_if_not<runtime_error>(some_pointer)
падаем в __GSHandlerCheck
Просто запихнутый туда
throw runtime_error{""}
, конечно, отрабатываетЧто могло пойти не так?