std::optional::operatorbool,std::optional::has_value(3)

NAME
std::optional::operatorbool,std::optional::has_value - std::optional::operatorbool,std::optional::has_value

Synopsis
   constexpr explicit operator bool() const noexcept; (since C++17)
   constexpr bool has_value() const noexcept; (since C++17)
   Checks whether *this contains a value.

Parameters
   (none)

Return value
   true if *this contains a value, false if *this does not contain a value.

Example
// Run this code
 #include <optional>
 #include <iostream>
 int main()
 {
     std::cout << std::boolalpha;
     std::optional<int> opt;
     std::cout << opt.has_value() << '\n';
     opt = 43;
     if (opt)
         std::cout << "value set to " << opt.value() << '\n';
     else
         std::cout << "value not set\n";
     opt.reset();
     if (opt.has_value())
         std::cout << "value still set to " << opt.value() << '\n';
     else
         std::cout << "value no longer set\n";
 }

Output:
 false
 value set to 43
 value no longer set