std::experimental::unique_resource<R, D>:: reset
From cppreference.net
<
cpp
|
experimental
|
unique resource
|
void
reset
(
)
noexcept
;
|
(1) | (техническая спецификация библиотеки fundamentals v3) |
|
template
<
class
RR
>
void reset ( RR && r ) ; |
(2) | (техническая спецификация библиотеки fundamentals v3) |
1)
Освобождает ресурс путем вызова deleter с использованием базового дескриптора ресурса, если
unique_resource
владеет им. После вызова
unique_resource
больше не владеет ресурсом.
2)
Заменяет ресурс, вызывая
(1)
и затем присваивает сохранённый дескриптор ресурса с помощью
std::
forward
<
RR
>
(
r
)
если
std::
is_nothrow_assignable_v
<
RS, RR
>
равно
true
, иначе с помощью
std::
as_const
(
r
)
, где
RS
- тип сохранённого дескриптора ресурса.
unique_resource
владеет ресурсом после вызова.
Если копирующее присваивание дескриптора ресурса хранилища вызывает исключение, вызывается
del_
(
r
)
, где
del
- это объект-делетер.
Эта перегрузка участвует в разрешении перегрузки только если выбранное выражение присваивания, присваивающее сохранённый дескриптор ресурса, является корректно сформированным.
Программа является некорректной, если
del_
(
r
)
является некорректной.
Поведение не определено, если
del_
(
r
)
приводит к неопределённому поведению или выбрасывает исключение.
Содержание |
Параметры
| r | - | дескриптор ресурса для управления новым ресурсом |
Возвращаемое значение
(нет)
Исключения
2)
Любое исключение, возникающее при присваивании сохраненного дескриптора ресурса.
Примечания
Механизм гарантирует отсутствие утечки ресурсов.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
заменяет управляемый объект
(публичная функция-член
std::unique_ptr<T,Deleter>
)
|