enable_current_exception
Requirements:
- T должен быть классом с доступным конструктором без бросков.
- Если T имеет какие-либо типы виртуальных баз, эти типы должны иметь доступный конструктор по умолчанию.
Returns:
Объектнеуказанноготипа, который публично вытекает из Т. То есть возвращенный объект может быть перехвачен уловом (T &).
Description:
Эта функция предназначена для использования непосредственно в бросовом выражении, чтобы включить поддержкуexception_ptrв Boost Exception. Например:
class
my_exception:
public std::exception
{
};
....
throw boost::enable_current_exception(my_exception());
Есливключить_current_исключениев момент использования объекта исключения в бросовом выражении, попытка скопировать его с использованиемcurrent_исключениеможет вернутьexception_ptr, которое относится к экземпляруunknown_исключение.
Note:
Вместо того, чтобы использовать ключевое слово бросок напрямую, предпочтительнее называть бустер:бросок_исключение. Это гарантирует исключение, которое происходит от увеличения:исключениеи поддерживаетисключение_ptrфункциональность.