Добавить std::rethrow_and_release для std::exception_ptr

Олег Фатхиев
Олег Фатхиев

Вместо того, чтобы писать как-то так:

std::exception_ptr tmp;
std::swap(tmp, exc_);
std::rethrow_exception(tmp);

Можно будет писать вот так:

std::rethrow_and_release(exc_);

Код самой функции:

void rethrow_and_release(std::exception_ptr p) {
    std::rethrow_exception(std::exchange(p, std::exception_ptr{}));
}
3
рейтинг
1 комментарий
yndx-antoshkka

Хм... может быть полезно.

Но возможно стоит поправить требования к exception_ptr и гарантировать что вот такой код будет оставлять p в null value состоянии:

std::rethrow_exception(std::move(p));
yndx-antoshkka
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения