Namespaces
Variants

std::shared_future<T>:: valid

From cppreference.net

Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
bool valid ( ) const noexcept ;
(depuis C++11)

Vérifie si le futur fait référence à un état partagé.

Ce n'est le cas que pour les futures qui n'ont pas été construits par défaut ou déplacés. Contrairement à std::future , std::shared_future , l'état partagé de std::shared_future n'est pas invalidé lorsque get() est appelé.

Le comportement est indéfini si une fonction membre autre que le destructeur, l'opérateur d'affectation par copie, l'opérateur d'affectation par déplacement, ou valid est appelée sur un shared_future qui ne fait pas référence à un état partagé (bien que les implémentations soient encouragées à lever std::future_error indiquant no_state dans ce cas). Il est valide de déplacer ou copier depuis un objet shared_future pour lequel valid() est false .

Table des matières

Paramètres

(aucun)

Valeur de retour

true si * this fait référence à un état partagé, sinon false .

Exemple

#include <future>
#include <iostream>
int main()
{
    std::promise<void> p;
    std::shared_future<void> f = p.get_future();
    std::cout << std::boolalpha;
    std::cout << f.valid() << '\n';
    p.set_value();
    std::cout << f.valid() << '\n';
    f.get();
    std::cout << f.valid() << '\n';
}

Sortie :

true
true
true

Voir aussi

attend que le résultat soit disponible
(fonction membre publique)