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.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Utilities library
Type support (basic types, RTTI)
Library feature-test macros (C++20)
(C++11)
(C++20)
(C++26)
(C++20)
Coroutine support (C++20)
Contract support (C++26)
(C++20)(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
General utilities
Relational operators (deprecated in C++20)
(C++20)(C++20)(C++20)
(C++20)(C++20)(C++20)
(C++20)
Swap and type operations
Common vocabulary types
Defined in header
<utility>
struct in_place_t { explicit in_place_t() = default; };
(1)
(since C++17)
inline constexpr std::in_place_t in_place {};
(2)
(since C++17)
template< class T >
struct in_place_type_t { explicit in_place_type_t() = default; };
(3)
(since C++17)
struct in_place_type_t { explicit in_place_type_t() = default; };
template< class T >
constexpr std::in_place_type_t<T> in_place_type {};
(4)
(since C++17)
constexpr std::in_place_type_t<T> in_place_type {};
template< std::size_t I >
struct in_place_index_t { explicit in_place_index_t() = default; };
(5)
(since C++17)
struct in_place_index_t { explicit in_place_index_t() = default; };
template< std::size_t I >
constexpr std::in_place_index_t<I> in_place_index {};
(6)
(since C++17)
constexpr std::in_place_index_t<I> in_place_index {};
1,3,5) The type/type templates
std::in_place_t
, std::in_place_type_t
and std::in_place_index_t
can be used in the constructor's parameter list to match the intended tag.2,4,6) The corresponding
std::in_place
, std::in_place_type
, and std::in_place_index
instances of (1,3,5) are disambiguation tags that can be passed to the constructors to indicate that the contained object should be constructed in-place, and (for the latter two) the type of the object to be constructed.[edit] Standard library
The following standard library types use (1-6) as disambiguation tags:
(C++23)
(class template) [edit]