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
|
Определено в заголовочном файле
<utility>
|
||
|
struct
in_place_t
{
explicit
in_place_t
(
)
=
default
;
}
;
|
(1) | (начиная с C++17) |
|
inline
constexpr
std
::
in_place_t
in_place
{
}
;
|
(2) | (начиная с C++17) |
|
template
<
class
T
>
struct in_place_type_t { explicit in_place_type_t ( ) = default ; } ; |
(3) | (начиная с C++17) |
|
template
<
class
T
>
constexpr std :: in_place_type_t < T > in_place_type { } ; |
(4) | (начиная с C++17) |
|
template
<
std::
size_t
I
>
struct in_place_index_t { explicit in_place_index_t ( ) = default ; } ; |
(5) | (начиная с C++17) |
|
template
<
std::
size_t
I
>
constexpr std :: in_place_index_t < I > in_place_index { } ; |
(6) | (начиная с C++17) |
1,3,5)
Типы/шаблоны типов
std::in_place_t
,
std::in_place_type_t
и
std::in_place_index_t
могут использоваться в списке параметров конструктора для соответствия целевому тегу.
2,4,6)
Соответствующие экземпляры
std::in_place
,
std::in_place_type
и
std::in_place_index
из
(1,3,5)
являются тегами устранения неоднозначности, которые могут быть переданы в конструкторы для указания, что содержащийся объект должен быть сконструирован на месте, и (для последних двух) тип объекта, который должен быть сконструирован.
Стандартная библиотека
Следующие типы стандартной библиотеки используют (1-6) в качестве тегов устранения неоднозначности:
|
(C++17)
|
объекты, содержащие экземпляры любого
CopyConstructible
типа
(класс) |
|
(C++23)
|
обёртка, содержащая либо ожидаемое, либо ошибочное значение
(шаблон класса) |
|
(C++23)
|
перемещаемая обёртка любого вызываемого объекта, поддерживающая квалификаторы в заданной сигнатуре вызова
(шаблон класса) |
|
(C++17)
|
обёртка, которая может содержать или не содержать объект
(шаблон класса) |
|
(C++17)
|
типобезопасное размеченное объединение
(шаблон класса) |
Смотрите также
|
(C++23)
|
указывает, что элементы диапазона отсортированы и уникальны
(тег) |
|
указывает, что элементы диапазона отсортированы (уникальность не требуется)
(тег) |