std::experimental::promise<R>::promise (ライブラリ基礎 TS)
From cppreference.com
< cpp | experimental | lib extensions | promise
| promise(); |
(1) | (Library Fundamentals TS) |
| template< class Alloc > promise( std::allocator_arg_t, const Alloc& alloc ); |
(2) | (Library Fundamentals TS) |
| promise( promise&& other ) noexcept; |
(3) | (Library Fundamentals TS) |
| promise( const promise& other ) = delete; |
(4) | (Library Fundamentals TS) |
std::experimental::promise オブジェクトを構築します。
1) デフォルトコンストラクタ。空の共有状態を持つプロミスを構築します。
2) 空の共有状態を持つプロミスを構築します。共有状態は alloc を使用して割り当てられます。これは、型消去されたアロケータとして扱われます(下記参照)。
3) ムーブコンストラクタ。ムーブセマンティクスを使用して、other の共有状態を持つプロミスを構築します。構築後、other は共有状態を持ちません。
4)
std::experimental::promise はコピーできません。[編集] 型消去アロケータ
アロケータ引数 alloc を取る promise のコンストラクタは、その引数を型消去されたアロケータとして扱います。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::allocator_traits<Alloc>::resource の特殊化std::experimental::pmr::polymorphic_allocator |
alloc.resource() |
| 上記以外の Allocator 要件を満たす型 | A が alloc の型である場合、std::experimental::pmr::resource_adaptor<A>(alloc) の値へのポインタ。このポインタは、promise オブジェクトの生存期間中のみ有効です。 |
| 上記以外の場合 | プログラムは不正形式です。 |
[編集] パラメータ
| alloc | - | 共有状態を割り当てるために使用されるアロケータ |
| その他 | - | 状態を取得する別の std::experimental::promise |
[編集] 例外
1,2) (なし)