current_exception
Получает интеллектуальный указатель на текущее исключение.
exception_ptr current_exception();
Возвращаемое значение
Объект exception_ptr, указывающий на текущее исключение.
Заметки
Вызовите функцию current_exception в блоке catch. Если исключение находится в полете и блок перехвата может перехватить это исключение, функция current_exception возвращает объект exception_ptr, который ссылается на это исключение. В противном случае функция возвращает объект exception_ptr со значением null.
Функция current_exception перехватывает исключение, находящееся в полете, независимо от того, определяет ли оператор catch оператор объявления исключения.
Деструктор для текущего исключения вызывается в конце блока catch, если не требуется повторно создавать исключение. Однако даже при вызове функции current_exception в деструкторе эта функция возвращает объект exception_ptr, который ссылается на текущее исключение.
Последующие вызовы функции current_exception возвращают объекты exception_ptr, которые ссылаются на различные копии текущего исключения. Соответственно, при сравнении объекты не признаются равными, поскольку они ссылаются на различные копии, даже если эти копии имеют одинаковые бинарные значения.