Spec-Zone.ru › C++

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

constexpr explicit operator bool() const noexcept;
(начиная с C++17)
constexpr bool has_value() const noexcept;
(начиная с C++17)

Проверяет, содержит ли *this значение.

Параметры

(нет)

Возвращаемое значение

true, если *this содержит значение, false, если *this не содержит значения.

Пример

#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";
}

Вывод:

false
value set to 43
value no longer set

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/utility/optional/operator_bool

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API