命名空间
变体
操作

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.cn
< cpp‎ | 工具
 
 
 
在头文件 <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_tstd::in_place_type_tstd::in_place_index_t 可用于构造函数的参数列表,以匹配预期的标签。
2,4,6) 相应的 std::in_placestd::in_place_typestd::in_place_index 实例(来自 (1,3,5))是消除歧义的标签,可以传递给构造函数,以指示包含的对象应该就地构造,并且(对于后两者)指定要构造的对象的类型。

[编辑] 标准库

以下标准库类型使用 (1-6) 作为消歧标签

(C++17)
保存任意 可复制构造 类型实例的对象
(类) [编辑]
(C++23)
一个包装器,包含预期值或错误值
(类模板) [编辑]
任何支持给定调用签名中限定符的可调用对象的仅移动包装器
(类模板) [编辑]
(C++17)
可能包含或不包含对象的包装器
(类模板) [编辑]
(C++17)
一种类型安全的带判别联合体
(类模板) [编辑]

[编辑] 另请参阅

表示范围的元素已排序且唯一
(标签)[编辑]
表示范围的元素已排序(不要求唯一性)
(标签)[编辑]