Namespaces
Variants

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

From cppreference.net
constexpr const T * operator - > ( ) const ;
(1) (库基础技术规范)
constexpr T * operator - > ( ) ;
(1) (库基础技术规范)
constexpr const T & operator * ( ) const & ;
(2) (库基础技术规范)
constexpr T & operator * ( ) & ;
(2) (库基础技术规范)
constexpr const T && operator * ( ) const && ;
(2) (库基础技术规范)
constexpr T && operator * ( ) && ;
(2) (库基础技术规范)

访问所包含的值。

1) 返回指向所含值的指针。
2) 返回所含值的引用。

* this 不包含值 时,行为是未定义的。

目录

参数

(无)

返回值

指向所包含值的指针或引用。

异常

不抛出任何异常。

注释

此运算符不会检查 optional 是否包含值。若需进行带检查的访问,可使用 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

另请参阅

返回所含值
(公开成员函数)
若存在则返回所含值,否则返回另一值
(公开成员函数)