名稱空間
變體
操作

C++ 命名要求: EmplaceConstructible (自 C++11 起)

來自 cppreference.com
 
 
C++ 命名要求
基本
型別屬性
全庫範圍




Container(容器)
容器元素
EmplaceConstructible(可就地構造)
(C++11)
迭代器 (Iterator)
流 I/O
格式化器
隨機數
併發
(C++11)
範圍
多維檢視
其他

 

指定給定型別的物件可以透過給定的分配器,在未初始化的儲存中,從給定的一組引數構造。

[編輯] 要求

如果給定以下條件,型別 T 是可 就地構造 (EmplaceConstructible)容器 (Container) X (其 value_typeT 相同) 的,從引數 args

A 一個分配器型別
m 一個 A 型別的左值
p 由容器準備的 T* 型別指標
args 零個或多個引數

其中 X::allocator_typestd::allocator_traits<A>::rebind_alloc<T> 相同,

以下表達式形式良好:

std::allocator_traits<A>::construct(m, p, args);

如果 X 不支援分配器或是一個 std::basic_string 特化,則該術語的定義就像 Astd::allocator<T> 一樣,但不需要建立分配器物件,並且不會例項化 std::allocator 的使用者定義特化。

[編輯] 注意

儘管直到 C++23 都要求在構造 std::basic_string 的元素時使用自定義的 construct,但所有實現都只使用了預設機制。此要求已透過 P1072R10 更正,以符合現有實踐。

[編輯] 另請參閱

CopyInsertable(可複製插入)
MoveInsertable(可移動插入)