Namespaces
Variants

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

From cppreference.net
constexpr const T * operator - > ( ) const ;
(1) (ライブラリファンダメンタルTS)
constexpr T * operator - > ( ) ;
(1) (ライブラリファンダメンタルTS)
constexpr const T & operator * ( ) const & ;
(2) (ライブラリファンダメンタルTS)
constexpr T & operator * ( ) & ;
(2) (ライブラリファンダメンタルTS)
constexpr const T && operator * ( ) const && ;
(2) (ライブラリファンダメンタルTS)
constexpr T && operator * ( ) && ;
(2) (ライブラリファンダメンタル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

関連項目

含まれる値を返す
(公開メンバ関数)
利用可能な場合は含まれる値を、そうでない場合は別の値を返す
(公開メンバ関数)