Namespaces
Variants

std::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 valide ( ) 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 (c'est-à-dire retournés par std::promise::get_future() , std::packaged_task::get_future() ou std::async() ) jusqu'à la première fois où get() ou share() est appelé.

Le comportement est indéfini si une fonction membre autre que le destructeur, l'opérateur d'affectation par déplacement, ou valid est appelée sur un 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 un objet 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::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
false

Voir aussi

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