Namespaces
Variants

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

From cppreference.net
promise ( ) ;
(1) (库基础技术规范)
template < class Alloc >
promise ( std:: allocator_arg_t , const Alloc & alloc ) ;
(2) (库基础技术规范)
promise ( promise && other ) noexcept ;
(3) (库基础技术规范)
promise ( const promise & other ) = delete ;
(4) (库基础技术规范)

构造一个 std::experimental::promise 对象。

1) 默认构造函数。构造具有空共享状态的 promise。
2) 使用空共享状态构造 promise。共享状态通过 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 的特化
alloc. resource ( )
满足 Allocator 要求的任何其他类型 指向类型为 std:: experimental :: pmr :: resource_adaptor < A > ( alloc ) 的值的指针,其中 A alloc 的类型。该指针仅在 promise 对象的生命周期内有效。
以上皆不符合 程序非良构。

参数

alloc - 用于分配共享状态的分配器
other - 用于获取状态的另一个 std::experimental::promise 对象

异常

1,2) (无)