std::experimental::promise<R>:: promise (library fundamentals TS)
From cppreference.net
<
cpp
|
experimental
|
lib extensions
|
promise
|
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)
(无)