Namespaces
Variants

std::experimental::scope_fail<EF>:: scope_fail

From cppreference.net

template < class Fn >
explicit scope_fail ( Fn && fn ) noexcept ( /*voir ci-dessous*/ ) ;
(1) (bibliothèque fundamentals TS v3)
scope_fail ( scope_fail && other ) noexcept ( /*voir ci-dessous*/ ) ;
(2) (bibliothèque fundamentals TS v3)
scope_fail ( const scope_fail & ) = delete ;
(3) (bibliothèque fundamentals TS v3)

Crée un scope_fail à partir d'une fonction, d'un objet fonction ou d'un autre scope_fail .

1) Initialise la fonction de sortie avec une fonction ou un objet fonction, et initialise le compteur d'exceptions non capturées comme si avec std:: uncaught_exceptions ( ) . Le scope_fail construit est actif.
Si Fn n'est pas un type référence lvalue et que std:: is_nothrow_constructible_v < EF, Fn > est true , le EF stocké est initialisé avec std:: forward < Fn > ( fn ) ; sinon il est initialisé avec fn .
Si l'initialisation du stocké EF lève une exception, appelle fn ( ) .
Cette surcharge participe à la résolution de surcharge seulement si std:: is_same_v < std:: remove_cvref_t < Fn > , scope_fail > est false et std:: is_constructible_v < EF, Fn > est true .
Le programme est mal formé si l'expression d'appel de fonction fn ( ) est mal formée.
Le comportement est indéfini si l'appel de fn ( ) lève une exception ou entraîne un comportement indéfini, même si fn n'a pas été appelé.
2) Constructeur de déplacement. Initialise le EF stocké avec celui de other , et initialise le compteur d'exceptions non capturées avec celui de other . Le scope_fail construit est actif si et seulement si other était actif avant la construction.
Si std:: is_nothrow_move_constructible_v < EF > est true , initialise l' EF stocké (désigné par exitfun ) avec std:: forward < EF > ( other. exitfun ) , sinon l'initialise avec other. exitfun .
Après une construction par déplacement réussie, other. release ( ) est appelée et other devient inactif.
Cette surcharge participe à la résolution de surcharge uniquement si std:: is_nothrow_move_constructible_v < EF > est true ou std:: is_copy_constructible_v < EF > est true .
Le comportement est indéfini si
3) scope_fail n'est pas CopyConstructible .

Table des matières

Paramètres

fn - fonction ou objet fonction utilisé pour initialiser le EF stocké
other - scope_fail à déplacer

Exceptions

Toute exception levée durant l'initialisation du EF stocké.

1)
noexcept spécification :

Exemple

Voir aussi

( removed in C++20* ) (C++17)
vérifie si la gestion d'exception est actuellement en cours
(fonction)
rend le scope_fail inactif
(fonction membre publique)