Aracılığıyla paylaş


promise Sınıfı

Zaman uyumsuz sağlayıcıyı açıklar.

Sözdizimi

template <class Ty>
class promise;

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
söz Bir promise nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
get_future Bu sözle ilişkili bir gelecek döndürür.
set_exception Bir özel durumu belirtmek için bu söz sonucunu atomik olarak ayarlar.
set_exception_at_thread_exit Bu söz sonucunu atomik olarak bir özel durumu gösterecek şekilde ayarlar ve bildirimi yalnızca geçerli iş parçacığındaki tüm iş parçacığı yerel nesneleri yok edildikten sonra (genellikle iş parçacığı çıkışında) teslim eder.
set_value Bir değeri belirtmek için bu söz sonucunu atomik olarak ayarlar.
set_value_at_thread_exit Bu sözün sonucunu atomik olarak bir değeri gösterecek şekilde ayarlar ve bildirimi yalnızca geçerli iş parçacığındaki tüm iş parçacığı yerel nesneleri yok edildikten sonra (genellikle iş parçacığı çıkışında) teslim eder.
değiş tokuş etmek Bu promise'in ilişkili zaman uyumsuz durumunu belirtilen promise nesnesinin durumuyla değiştirir.

Ortak İşleçler

Veri Akışı Adı Açıklama
promise::operator= Bu promise nesnesinin paylaşılan durumunun ataması.

Devralma Hiyerarşisi

söz

Gereksinimler

Üst bilgi:<gelecek>

Ad alanı: std

promise::get_future

Bu promise ile aynı ilişkili zaman uyumsuz duruma sahip gelecekteki bir nesne döndürür.

future<Ty> get_future();

Açıklamalar

Promise nesnesi boşsa, bu yöntem error_code içeren bir future_error no_stateoluşturur.

Bu yöntem, aynı ilişkili zaman uyumsuz duruma sahip bir promise nesnesi için zaten çağrıldıysa, yöntemi içeren bir future_error error_code future_already_retrievedoluşturur.

promise::operator=

Belirtilen promise nesneden ilişkili zaman uyumsuz durumu aktarır.

promise& operator=(promise&& Other) noexcept;

Parametreler

Diğer
Bir promise nesnesi.

Dönüş Değeri

*this

Açıklamalar

Bu işleç, ilişkili zaman uyumsuz durumu Diğer'den aktarır. Aktarımdan sonra Diğer boş olur.

promise::p romise Oluşturucu

Bir promise nesne oluşturur.

promise();
template <class Alloc>
promise(allocator_arg_t, const Alloc& Al);
promise(promise&& Other) noexcept;

Parametreler

Al
Bellek ayırıcı. Ayırıcılar hakkında daha fazla bilgi için bkz <. ayırıcılar>.

Diğer
Bir promise nesnesi.

Açıklamalar

İlk oluşturucu boş promise bir nesne oluşturur.

İkinci oluşturucu boş promise bir nesne oluşturur ve bellek ayırma için Al kullanır.

Üçüncü oluşturucu bir promise nesne oluşturur ve ilişkili zaman uyumsuz durumu Diğer'den aktarır ve Diğer'i boş bırakır.

promise::set_exception

Bu promise nesnenin sonucu olarak bir özel durumu atomik olarak depolar ve ilişkili zaman uyumsuz durumu hazır olarak ayarlar.

void set_exception(exception_ptr Exc);

Parametreler

Exc
Özel durum sonucu olarak bu yöntem tarafından depolanan bir exception_ptr .

Açıklamalar

Nesnenin promise ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.

, set_exception_at_thread_exit, set_value veya set_value_at_thread_exit aynı zaman uyumsuz duruma sahip bir promise nesne için zaten çağrıldıysaset_exception, bu yöntem hata koduna promise_already_satisfiedsahip bir future_error oluşturur.

Bu yöntemin bir sonucu olarak, ilişkili zaman uyumsuz durumda engellenen tüm iş parçacıklarının engeli kaldırılır.

promise::set_exception_at_thread_exit

Bunun sonucunu promise atomik olarak bir özel durumu gösterecek şekilde ayarlar ve bildirimi yalnızca geçerli iş parçacığındaki tüm iş parçacığı yerel nesneleri yok edildikten sonra (genellikle iş parçacığı çıkışında) teslim eder.

void set_exception_at_thread_exit(exception_ptr Exc);

Parametreler

Exc
Özel durum sonucu olarak bu yöntem tarafından depolanan bir exception_ptr .

Açıklamalar

Promise nesnesinin ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.

set_exception, set_exception_at_thread_exit, set_value veya set_value_at_thread_exit aynı zaman uyumsuz duruma sahip bir promise nesne için zaten çağrıldıysa, bu yöntem hata koduna promise_already_satisfiedsahip bir future_error oluşturur.

set_exception aksine, geçerli iş parçacığındaki tüm iş parçacığı yerel nesneleri yok edilene kadar bu yöntem ilişkili zaman uyumsuz durumu hazır olarak ayarlamaz. Genellikle, ilişkili zaman uyumsuz durumda engellenen iş parçacıklarının engeli geçerli iş parçacığı çıkana kadar kaldırılmaz.

promise::set_value

Atomik olarak bu promise nesnenin sonucu olarak bir değer depolar ve ilişkili zaman uyumsuz durumu hazır olarak ayarlar.

void promise::set_value(const Ty& Val);
void promise::set_value(Ty&& Val);
void promise<Ty&>::set_value(Ty& Val);
void promise<void>::set_value();

Parametreler

Val
Sonuç olarak depolanacak değer.

Açıklamalar

Nesnenin promise ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.

set_exception, set_exception_at_thread_exit, set_valueveya set_value_at_thread_exit zaten aynı ilişkili zaman uyumsuz duruma sahip bir promise nesne için çağrıldıysa, bu yöntem hata koduna promise_already_satisfiedsahip bir future_error oluşturur.

Bu yöntemin bir sonucu olarak, ilişkili zaman uyumsuz durumda engellenen tüm iş parçacıklarının engeli kaldırılır.

İlk yöntem ayrıca, Val ilişkili zaman uyumsuz duruma kopyalandığında oluşan herhangi bir özel durum oluşturur. Bu durumda, ilişkili zaman uyumsuz durum hazır olarak ayarlanmamıştır.

İkinci yöntem ayrıca, Val ilişkili zaman uyumsuz duruma taşındığında oluşan herhangi bir özel durum oluşturur. Bu durumda, ilişkili zaman uyumsuz durum hazır olarak ayarlanmamıştır.

Kısmi özelleştirme promise<Ty&>için depolanan değer, Val'e bir başvuru olarak etkindir.

özelleştirmesi promise<void>için depolanmış değer yok.

promise::set_value_at_thread_exit

Atomik olarak bu promise nesnenin sonucu olarak bir değer depolar.

void promise::set_value_at_thread_exit(const Ty& Val);
void promise::set_value_at_thread_exit(Ty&& Val);
void promise<Ty&>::set_value_at_thread_exit(Ty& Val);
void promise<void>::set_value_at_thread_exit();

Parametreler

Val
Sonuç olarak depolanacak değer.

Açıklamalar

Promise nesnesinin ilişkili zaman uyumsuz durumu yoksa, bu yöntem hata koduna no_statesahip bir future_error oluşturur.

set_exception, set_exception_at_thread_exit, set_value veya set_value_at_thread_exit zaten aynı ilişkili zaman uyumsuz duruma sahip bir promise nesne için çağrıldıysa, bu yöntem hata koduna promise_already_satisfiedsahip bir future_error oluşturur.

yerine set_value, geçerli iş parçacığındaki tüm iş parçacığı yerel nesneleri yok edilene kadar ilişkili zaman uyumsuz durum hazır olarak ayarlanmamıştır. Genellikle, ilişkili zaman uyumsuz durumda engellenen iş parçacıklarının engeli geçerli iş parçacığı çıkana kadar kaldırılmaz.

İlk yöntem ayrıca, Val ilişkili zaman uyumsuz duruma kopyalandığında oluşan herhangi bir özel durum oluşturur.

İkinci yöntem ayrıca, Val ilişkili zaman uyumsuz duruma taşındığında oluşan herhangi bir özel durum oluşturur.

Kısmi özelleştirme promise<Ty&>için depolanan değer, val'e etkili bir başvurudur.

özelleştirmesi promise<void>için depolanmış değer yok.

promise::swap

Bu promise nesnesinin ilişkili zaman uyumsuz durumunu belirtilen nesneninkiyle değiştirir.

void swap(promise& Other) noexcept;

Parametreler

Diğer
Bir promise nesnesi.

Ayrıca bkz.

Üst Bilgi Dosyaları Başvurusu