Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::shared_future::valid(3)  C++ Standard Libary std::shared_future::valid(3)

NAME
       std::shared_future::valid - std::shared_future::valid

Synopsis
	  bool valid() const noexcept;	(since C++11)

	  Checks if the	future refers to a shared state.

	  This	is the case only for futures that were not default-constructed
       or moved	from.
	  Unlike std::future, std::shared_future's shared state	is not invali-
       dated when get()
	  is called.

	  The behavior is undefined if any member function other than the  de-
       structor, the
	  copy-assignment  operator, the move-assignment operator, or valid is
       called on a
	  shared_future	that does not refer to shared state  (although	imple-
       mentations are
	  encouraged  to  throw	 std::future_error indicating no_state in this
       case). It is valid
	  to move or copy from a shared_future object  for  which  valid()  is
       false.

Parameters
	  (none)

Return value
	  true if *this	refers to a shared state, otherwise false.

Example
       // Run this code

	#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';
	}

Output:
	true
	true
	true

See also
	  wait waits for the result to become available
	       (public member function)

http://cppreference.com		  2022.07.31	  std::shared_future::valid(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::shared_future::valid&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help