Namespaces
Variants

std::in_place, std::in_place_type, std::in_place_index, std::in_place_t, std::in_place_type_t, std::in_place_index_t

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support du langage
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
Défini dans l'en-tête <utility>
struct in_place_t { explicit in_place_t() = default; };
(1) (depuis C++17)
inline constexpr std::in_place_t in_place {};
(2) (depuis C++17)
template< class T >
struct in_place_type_t { explicit in_place_type_t() = default; };
(3) (depuis C++17)
template< class T >
constexpr std::in_place_type_t<T> in_place_type {};
(4) (depuis C++17)
template< std::size_t I >
struct in_place_index_t { explicit in_place_index_t() = default; };
(5) (depuis C++17)
template< std::size_t I >
constexpr std::in_place_index_t<I> in_place_index {};
(6) (depuis C++17)
1,3,5) Les modèles de type std::in_place_t, std::in_place_type_t et std::in_place_index_t peuvent être utilisés dans la liste des paramètres du constructeur pour correspondre à l'étiquette prévue.
2,4,6) Les instances correspondantes std::in_place, std::in_place_type et std::in_place_index de (1,3,5) sont des étiquettes de désambiguïsation qui peuvent être passées aux constructeurs pour indiquer que l'objet contenu doit être construit sur place, et (pour les deux dernières) le type de l'objet à construire.

Bibliothèque standard

Les types de bibliothèque standard suivants utilisent (1-6) comme étiquettes de désambiguïsation :

(C++17)
objets contenant des instances de tout type CopyConstructible
(classe)
(C++23)
un wrapper contenant soit une valeur attendue soit une valeur d'erreur
(modèle de classe)
wrapper non copiable de tout objet appelable prenant en charge les qualificateurs dans une signature d'appel donnée
(modèle de classe)
(C++17)
un wrapper pouvant contenir ou non un objet
(modèle de classe)
(C++17)
une union discriminée type-safe
(modèle de classe)

Voir aussi

indique que les éléments d'une plage sont triés et uniques
(balise)
indique que les éléments d'une plage sont triés (l'unicité n'est pas requise)
(balise)