Namespaces
Variants
Actions

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

From cppreference.com
< cpp‎ | utility‎ | optional
 
 
Utilities library
General utilities
Relational operators (deprecated in C++20)
(C++20)(C++20)(C++20)  
(C++20)
(C++20)
(C++14)
(C++11)
(C++11)
(C++23)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)


 
 
constexpr explicit operator bool() const noexcept;
(since C++17)
constexpr bool has_value() const noexcept;
(since C++17)

Checks whether *this contains a value.

[edit] Return value

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

[edit] Example

Run this code
#include <iostream>
#include <optional>
 
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

[edit] See also

checks whether the object contains an expected value
(public member function of std::expected<T,E>) [edit]
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/optional/operator_bool&oldid=183380"

AltStyle によって変換されたページ (->オリジナル) /