Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
 
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)

Konstruiert ein std::experimental::promise Objekt.

1) Standardkonstruktor. Konstruiert das Promise mit einem leeren gemeinsamen Zustand.
2) Konstruiert das Promise mit einem leeren gemeinsamen Zustand. Der gemeinsame Zustand wird unter Verwendung von alloc zugewiesen, was als typ-erased Allocator behandelt wird (siehe unten).
3) Move-Konstruktor. Konstruiert das Promise mit dem gemeinsamen Zustand von other unter Verwendung von Move-Semantik. Nach der Konstruktion hat other keinen gemeinsamen Zustand mehr.
4) std::experimental::promise ist nicht kopierbar.

[edit] Typ-erased Allocator

Die Konstruktoren von promise, die ein Allocator-Argument alloc entgegennehmen, behandeln dieses Argument als typ-erased Allocator. Die Speicherressource, die promise zur Zuweisung von Speicher verwendet, wird wie folgt über das Allocator-Argument (falls angegeben) bestimmt:

Typ von alloc Wert des Speicherressourcenzeigers
Nicht vorhanden (kein Allocator zum Zeitpunkt der Konstruktion angegeben) Der Wert von std::experimental::pmr::get_default_resource() zum Zeitpunkt der Konstruktion.
std::nullptr_t Der Wert von std::experimental::pmr::get_default_resource() zum Zeitpunkt der Konstruktion.
Ein Zeigertyp, der konvertierbar ist zu
std::experimental::pmr::memory_resource*
static_cast<std::experimental::pmr::memory_resource*>(alloc)
Eine Spezialisierung von
std::experimental::pmr::polymorphic_allocator
alloc.resource()
Ein anderer Typ, der die Anforderungen an Allocator erfüllt Ein Zeiger auf einen Wert vom Typ std::experimental::pmr::resource_adaptor<A>(alloc), wobei A der Typ von alloc ist. Der Zeiger bleibt nur für die Lebensdauer des promise-Objekts gültig.
Keine der obigen Optionen Das Programm ist schlecht formuliert.

[edit] Parameter

alloc - Allocator zur Zuweisung des gemeinsamen Zustands
Sonstiges - Ein weiteres std::experimental::promise, von dem der Zustand übernommen werden soll

[edit] Ausnahmen

1,2) (keine)