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_state
oluş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_retrieved
oluş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_state
sahip 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_satisfied
sahip 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_state
sahip 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_satisfied
sahip 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_state
sahip 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_satisfied
sahip 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_state
sahip 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_satisfied
sahip 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.