Namespaces
Variants

std::experimental::optional<T>:: emplace

From cppreference.net
template < class ... Args >
void emplace ( Args && ... args ) ;
(spécifications techniques des bibliothèques fondamentales)
template < class U, class ... Args >
void emplace ( std:: initializer_list < U > ilist, Args && ... args ) ;
(spécifications techniques des bibliothèques fondamentales)

Construit la valeur contenue sur place. Si * this contient déjà une valeur avant l'appel, la valeur contenue est détruite en appelant son destructeur.

1) Initialise la valeur contenue par initialisation directe (mais pas l'initialisation directe de liste) avec std:: forward < Args > ( args ) ... comme paramètres.
2) Initialise la valeur contenue en appelant son constructeur avec ilist, std:: forward < Args > ( args ) ... comme paramètres. Cette surcharge participe à la résolution de surcharge seulement si std:: is_constructible < T, std:: initializer_list < U > & , Args && ... > :: value est true .

Table des matières

Paramètres

args... - les arguments à passer au constructeur
ilist - la liste d'initialisation à passer au constructeur
Exigences de type
-
T doit être constructible à partir de Args...
-
T doit être constructible à partir de std::initializer_list et Args...

Valeur de retour

(aucun)

Exceptions

Toute exception levée par le constructeur sélectionné de T . Si une exception est levée, * this ne contient pas de valeur après cet appel (la valeur précédemment contenue, le cas échéant, a été détruite).

Voir aussi

assigne le contenu
(fonction membre publique)