Namespaces
Variants

std::experimental::scope_exit<EF>:: scope_exit

From cppreference.net

template < class Fn >
explicit scope_exit ( Fn && fn ) noexcept ( /*see below*/ ) ;
(1) (library fundamentals TS v3)
scope_exit ( scope_exit && other ) noexcept ( /*see below*/ ) ;
(2) (library fundamentals TS v3)
scope_exit ( const scope_exit & ) = delete ;
(3) (library fundamentals TS v3)

Создает scope_exit из функции, функционального объекта или другого scope_exit .

1) Инициализирует функцию выхода с помощью функции или функционального объекта. Сконструированный scope_exit является активным.
Если Fn не является типом lvalue-ссылки и std:: is_nothrow_constructible_v < EF, Fn > равно true , то сохранённый EF инициализируется с помощью std:: forward < Fn > ( fn ) ; иначе он инициализируется с помощью fn .
Если инициализация сохраненного EF вызывает исключение, вызывает fn ( ) .
Эта перегрузка участвует в разрешении перегрузки только если std:: is_same_v < std:: remove_cvref_t < Fn > , scope_exit > равно false и std:: is_constructible_v < EF, Fn > равно true .
Программа является некорректной, если выражение вызова функции fn ( ) является некорректным.
Поведение не определено, если вызов fn ( ) вызывает исключение или приводит к неопределённому поведению, даже если fn не был вызван.
2) Конструктор перемещения. Инициализирует хранимый EF значением из other . Созданный scope_exit активен тогда и только тогда, когда other был активен до создания.
Если std:: is_nothrow_move_constructible_v < EF > равно true , инициализирует сохранённый EF (обозначаемый как exitfun ) с помощью std:: forward < EF > ( other. exitfun ) , в противном случае инициализирует его с помощью other. exitfun .
После успешного перемещающего конструирования, other. release ( ) вызывается и other становится неактивным.
Эта перегрузка участвует в разрешении перегрузки только если std:: is_nothrow_move_constructible_v < EF > равно true или std:: is_copy_constructible_v < EF > равно true .
Поведение не определено, если
3) scope_exit не является CopyConstructible .

Содержание

Параметры

fn - функция или функциональный объект, используемый для инициализации хранимого EF
other - scope_exit для перемещения из

Исключения

Любое исключение, выброшенное во время инициализации сохраненного EF .

1)
noexcept спецификация:

Пример

Смотрите также

делает scope_exit неактивным
(публичная функция-член)