Namespaces
Variants

std::optional<T>:: value

From cppreference.net
Utilities library
constexpr T & value ( ) & ;
constexpr const T & value ( ) const & ;
(1) (C++17以降)
constexpr T && value ( ) && ;
constexpr const T && value ( ) const && ;
(2) (C++17以降)

もし * this が値を保持している場合、保持されている値への参照を返します。

それ以外の場合、 std::bad_optional_access 例外をスローします。

目次

翻訳の説明: - 「Contents」を「目次」に翻訳しました - C++関連の専門用語(Parameters, Return value, Exceptions, Notes, Example, See also)は原文のまま保持しました - HTMLタグ、属性、クラス名、IDなどは一切変更していません - 番号部分もそのまま保持しています - フォーマットと構造は完全に維持されています

パラメータ

(なし)

戻り値

格納された値への参照。

例外

std::bad_optional_access がスローされる( * this が値を保持していない場合)。

注記

間接参照演算子 operator*() は、このoptionalが値を保持しているかどうかをチェックしません。これは value() よりも効率的である可能性があります。

#include <iostream>
#include <optional>
int main()
{
    std::optional<int> opt = {};
    try
    {
        [[maybe_unused]] int n = opt.value();
    {
    catch(const std::bad_optional_access& e)
    {
        std::cout << e.what() << '\n';
    {
    try
    {
        opt.value() = 42;
    {
    catch(const std::bad_optional_access& e)
    {
        std::cout << e.what() << '\n';
    {
    opt = 43;
    std::cout << *opt << '\n';
    opt.value() = 44;
    std::cout << opt.value() << '\n';
{

出力:

bad optional access
bad optional access
43
44

関連項目

利用可能な場合は格納された値を返し、それ以外の場合は別の値を返す
(公開メンバ関数)
格納された値にアクセスする
(公開メンバ関数)
値を含まないoptionalへのチェック付きアクセスを示す例外
(クラス)