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
Von de.cppreference.net
| Definiert im Header <utility>
|
||
struct in_place_t { explicit in_place_t() = default; };
|
(1) | (seit C++17) |
inline constexpr std::in_place_t in_place {};
|
(2) | (seit C++17) |
template< class T >
struct in_place_type_t { explicit in_place_type_t() = default; };
|
(3) | (seit C++17) |
template< class T >
constexpr std::in_place_type_t<T> in_place_type {};
|
(4) | (seit C++17) |
template< std::size_t I >
struct in_place_index_t { explicit in_place_index_t() = default; };
|
(5) | (seit C++17) |
template< std::size_t I >
constexpr std::in_place_index_t<I> in_place_index {};
|
(6) | (seit C++17) |
1,3,5) Die Typ-/Typschablonen
std::in_place_t, std::in_place_type_t und std::in_place_index_t können in der Parameterliste des Konstruktors verwendet werden, um das beabsichtigte Tag zuzuordnen.2,4,6) Die entsprechenden
std::in_place, std::in_place_type und std::in_place_index Instanzen von (1,3,5) sind Disambiguierungs-Tags, die an die Konstruktoren übergeben werden können, um anzuzeigen, dass das enthaltene Objekt direkt vor Ort konstruiert werden soll, und (für die letzten beiden) den Typ des zu konstruierenden Objekts.Standardbibliothek
Die folgenden Standardbibliothekstypen verwenden (1-6) als Unterscheidungsmarkierungen:
|
(C++17)
|
Objekte, die Instanzen eines beliebigen
CopyConstructible
Typs halten
(Klasse) |
|
(C++23)
|
ein Wrapper, der entweder einen erwarteten oder einen Fehlerwert enthält
(Klassentemplate) |
|
(C++23)
|
nur bewegbarer Wrapper eines beliebigen aufrufbaren Objekts, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt
(Klassentemplate) |
|
(C++17)
|
ein Wrapper, der möglicherweise ein Objekt enthält oder nicht
(Klassentemplate) |
|
(C++17)
|
eine typsichere, diskriminierte Union
(Klassentemplate) |
Siehe auch
|
(C++23)
|
zeigt an, dass die Elemente eines Bereichs sortiert und eindeutig sind
(Tag) |
|
zeigt an, dass die Elemente eines Bereichs sortiert sind (Eindeutigkeit nicht erforderlich)
(Tag) |