Namespaces
Variants

std::expected<T,E>:: emplace

From cppreference.net
Utilities library
Modèle primaire
template < class ... Args >
constexpr T & emplace ( Args && ... args ) noexcept ;
(1) (depuis C++23)
template < class U, class ... Args >
constexpr T & emplace ( std:: initializer_list < U > il, Args && ... args ) noexcept ;
(2) (depuis C++23)
void Spécialisation partielle
constexpr void emplace ( ) noexcept ;
(3) (depuis C++23)

Construit une valeur attendue en place. Après l'appel, has_value() renvoie true.

1) Détruit la valeur contenue, puis initialise directement la valeur attendue contenue dans * this avec std:: forward < Args > ( args ) ... .
Cette surcharge participe à la résolution de surcharge seulement si std:: is_nothrow_constructible_v < T, Args... > est true .
2) Détruit la valeur contenue, puis initialise directement la valeur attendue contenue dans * this avec il et std:: forward < Args > ( args ) ... .
Cette surcharge participe à la résolution de surcharge seulement si std:: is_nothrow_constructible_v < T, std:: initializer_list < U > & , Args... > est true .
3) Si * this contient une valeur inattendue, détruit cette valeur.

Table des matières

Paramètres

args - les arguments à passer au constructeur
il - la liste d'initialisation à passer au constructeur

Valeur de retour

2) * std:: construct_at ( std:: addressof ( val ) , il, std:: forward < Args > ( args ) ... )

Notes

Si la construction de T est potentiellement levante d'exception, operator= peut être utilisé à la place.

Exemple

Voir aussi

assigne le contenu
(fonction membre publique)