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