Namespaces
Variants

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
Utilities library
定义于头文件 <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++17)
可能持有或可能不持有对象的包装器
(类模板)
(C++17)
类型安全的可辨识联合体
(类模板)

参见

指示范围中的元素已排序且唯一
(标签)
指示范围中的元素已排序(不要求唯一性)
(标签)