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
                    
                                        
                    
                    
                                                            
                    |   在标头  <utility> 定义
  | 
||
|   struct in_place_t {     explicit in_place_t() = default;  | 
(C++17 起) | |
|   template <class T> struct in_place_type_t {     explicit in_place_type_t() = default;  | 
(C++17 起) | |
|   template <std::size_t I> struct in_place_index_t {     explicit in_place_index_t() = default;  | 
(C++17 起) | |
std::in_place 、 std::in_place_type 和 std::in_place_index 是消歧义标签,能传递给 std::optional 、 std::variant 和 std::any 的构造函数,以指示应该原位构造对象,以及(对于后二者)要构造的对象的类型。
对应的类型/类型模板 std::in_place_t 、 std::in_place_type_t 和 std::in_place_index_t 能用于构造函数的参数列表中,以匹配有意的标签。
参阅
|    (C++17)  | 
   可能或可能不保有一个对象的包装器   (类模板)  | 
|    (C++17)  | 
   类型安全的可辨识联合体   (类模板)  | 
|    (C++17)  | 
   可保有任何可复制构造 (CopyConstructible) 类型的实例的对象。  (类)  |