std::experimental::promise<R>::promise (library fundamentals TS)
来自 cppreference.cn
< 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) 默认构造函数。构造一个具有空共享状态的 promise。
2) 构造一个具有空共享状态的 promise。共享状态使用 alloc 分配,alloc 被视为类型擦除分配器(见下文)。
3) 移动构造函数。使用移动语义构造具有 other 的共享状态的 promise。构造后,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::experimental::pmr::polymorphic_allocator 的特化std::experimental::pmr::polymorphic_allocator |
alloc.resource() |
满足 Allocator 要求的任何其他类型 | 指向类型为 std::experimental::pmr::resource_adaptor<A>(alloc) 的值的指针,其中 A 是 alloc 的类型。指针仅在 promise 对象的生命周期内保持有效。 |
以上都不是 | 程序是非良构的。 |
[编辑] 参数
alloc | - | 用于分配共享状态的分配器 |
other | - | 另一个 std::experimental::promise ,从中获取状态 |
[编辑] 异常
1,2) (无)