Namespaces
Variants

std::experimental::optional<T>:: operator->, std::experimental::optional<T>:: operator*

From cppreference.net
constexpr const T * operator - > ( ) const ;
(1) (библиотека fundamentals TS)
constexpr T * operator - > ( ) ;
(1) (библиотека fundamentals TS)
constexpr const T & operator * ( ) const & ;
(2) (библиотека fundamentals TS)
constexpr T & operator * ( ) & ;
(2) (библиотека fundamentals TS)
constexpr const T && operator * ( ) const && ;
(2) (библиотека fundamentals TS)
constexpr T && operator * ( ) && ;
(2) (библиотека fundamentals TS)

Обращается к содержащемуся значению.

1) Возвращает указатель на содержащееся значение.
2) Возвращает ссылку на содержащееся значение.

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

Содержание

Параметры

(нет)

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

Указатель или ссылка на содержащееся значение.

Исключения

Ничего не выбрасывает.

Примечания

Этот оператор не проверяет, содержит ли опционал значение. Если требуется проверенный доступ, value() или value_or() могут быть использованы.

Пример

#include <experimental/optional>
#include <iostream>
#include <string>
using namespace std::literals;
int main()
{
    std::experimental::optional<int> opt1 = 1;
    std::cout << *opt1 << '\n';
    std::experimental::optional<std::string> opt2 = "abc"s;
    std::cout << opt2->size() << '\n';
}

Вывод:

1
3

Смотрите также

возвращает содержащееся значение
(публичная функция-член)
возвращает содержащееся значение, если оно доступно, иначе другое значение
(публичная функция-член)