Namespaces
Variants

std::experimental::promise<R>:: promise (library fundamentals TS)

From cppreference.net
promise ( ) ;
(1) (ライブラリファンダメンタルTS)
template < class Alloc >
promise ( std:: allocator_arg_t , const Alloc & alloc ) ;
(2) (ライブラリファンダメンタルTS)
promise ( promise && other ) noexcept ;
(3) (ライブラリファンダメンタルTS)
promise ( const promise & other ) = delete ;
(4) (ライブラリファンダメンタルTS)

std::experimental::promise オブジェクトを構築します。

1) デフォルトコンストラクタ。空の共有状態でpromiseを構築します。
2) 空の共有状態でpromiseを構築します。共有状態は alloc を使用して割り当てられます。これは型消去アロケータとして扱われます(下記参照)。
3) ムーブコンストラクタ。共有状態を other からムーブセマンティクスを使用して構築します。構築後、 other は共有状態を持ちません。
4) std::experimental::promise はコピー不可です。

タイプ消去アロケータ

promise のコンストラクタがアロケータ引数 alloc を受け取る場合、その引数をタイプ消去されたアロケータとして扱います。 promise がメモリ確保に使用するメモリリソースポインタは、指定されたアロケータ引数を使用して以下のように決定されます:

alloc の型 メモリリソースポインタの値
存在しない(構築時にアロケータが指定されていない場合) 構築時の std:: experimental :: pmr :: get_default_resource ( ) の値
std::nullptr_t 構築時の std:: experimental :: pmr :: get_default_resource ( ) の値

std:: experimental :: pmr :: memory_resource * に変換可能なポインタ型
static_cast < std:: experimental :: pmr :: memory_resource * > ( alloc )

std::experimental::pmr::polymorphic_allocator の特殊化
alloc. resource ( )
Allocator 要件を満たすその他の型 std:: experimental :: pmr :: resource_adaptor < A > ( alloc ) 型の値へのポインタ( A alloc の型)。このポインタは promise オブジェクトの生存期間中のみ有効
上記のいずれにも該当しない場合 プログラムは不適格(ill-formed)

パラメータ

alloc - 共有状態の割り当てに使用するアロケータ
other - 状態を取得する別の std::experimental::promise

例外

1,2) (なし)