Namespaces
Variants
Actions

std::optional<T>::operator bool, std::optional<T>::has_value

From cppreference.com
< cpp‎ | utility‎ | optional
 
 
 
 
constexprexplicit operator bool()constnoexcept;
(since C++17)
constexprbool has_value()constnoexcept;
(since C++17)

Checks whether *this contains a value.

[edit]Parameters

(none)

[edit]Return value

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

[edit]Example

#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';elsestd::cout<<"value not set\n";   opt.reset();if(opt.has_value())std::cout<<"value still set to "<< opt.value()<<'\n';elsestd::cout<<"value no longer set\n";}

Output:

false value set to 43 value no longer set
close