std::optional<T>::operator bool, std::optional<T>::has_value
From cppreference.com
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
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';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