exception_ptr
ИсключениеТип может использоваться для обозначения копии объекта исключения. По умолчанию Конструктивно, Копируемо Конструктивно, Приемлемо и Равенство Сопоставимо;Исключение_ptrОперации не бросают.
Ссылаемый объект остается действительным, по крайней мере, до тех пор, пока существуетисключение_ptrобъект, который ссылается на него.
Два экземпляраexception_ptrэквивалентны и сравниваются равными, если и только если они относятся к одному и тому же исключению.
Конструктор по умолчаниюexception_ptrпроизводит нулевое значение типа. Нулевое значение эквивалентно только самому себе.
Thread safety:
Типexception_ptr«безопасен для потоков, как встроенные типы»:
- Исключение_ptrэкземпляр может быть «прочитан» одновременно несколькими потоками
- различныйИсключение_ptrэкземпляры могут быть «записаны» одновременно несколькими потоками, даже если эти экземпляры относятся к одному и тому же объекту исключения
Все другие одновременные доступы приводят к неопределенному поведению.
Nesting of exceptions:
Исключениеможет быть добавлено какошибка_инфок любому ускорению::исключение. Это удобный способ гнездить исключения. Глубина гнездования не ограничена, однако циклические ссылки приводят к неопределенному поведению.