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

FreeBSD Manual Pages

  
 
  

home | help
std::optional::value(3)	      C++ Standard Libary      std::optional::value(3)

NAME
       std::optional::value - std::optional::value

Synopsis
	  constexpr T& value() &;		(1) (since C++17)
	  constexpr const T& value() const &;
	  constexpr T&&	value()	&&;		(2) (since C++17)
	  constexpr const T&& value() const &&;

	  If  *this  contains  a  value,  returns a reference to the contained
       value.

	  Otherwise, throws a std::bad_optional_access exception.

Parameters
	  (none)

Return value
	  A reference to the contained value.

Exceptions
	  std::bad_optional_access if *this does not contain a value.

Notes
	  The dereference operator operator*() does not	check if this optional
       contains	a
	  value, which may be more efficient than value().

Example
       // Run this code

	#include <optional>
	#include <iostream>
	int main()
	{
	    std::optional<int> opt = {};

	    try	{
		[[maybe_unused]] int n = opt.value();
	    } catch(const std::bad_optional_access& e) {
		std::cout << e.what() << '\n';
	    }
	    try	{
		opt.value() = 42;
	    } catch(const std::bad_optional_access& e) {
		std::cout << e.what() << '\n';
	    }

	    opt	= 43;
	    std::cout << *opt << '\n';

	    opt.value()	= 44;
	    std::cout << opt.value() <<	'\n';
	}

Output:
	bad optional access
	bad optional access
	43
	44

See also
			      returns the contained value  if  available,  an-
       other value
	  value_or	      otherwise
			      (public member function)
	  operator->	      accesses the contained value
	  operator*	      (public member function)
	  bad_optional_access  exception  indicating  checked access to	an op-
       tional that doesn't
	  (C++17)	      contain a	value
			      (class)

http://cppreference.com		  2022.07.31	       std::optional::value(3)

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

home | help