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
From 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-/Typ-Templates
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 den beabsichtigten Tag zu matchen.
2,4,6)
Die entsprechenden
std::in_place
,
std::in_place_type
, und
std::in_place_index
Instanzen von
(1,3,5)
sind Unterscheidungs-Tags, die an die Konstruktoren übergeben werden können, um anzuzeigen, dass das enthaltene Objekt direkt konstruiert werden soll, und (für die letzteren 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) |