c++11::std::optional

 

 

std::optional还有一个类似于智能指针的接口,
它可以显式转化为bool来表示std::optional是否有一个值。
指针的解引用操作符*和->都实现了,
但是没有std::bad_optional_access,用这种方式访问一个空的std::optional是一个未定义的行为。
reset()清除std::optional包含的对象,让它为空。

 

int main()
{
    std::string text = "123";
    std::optional<string> opt = text;
    if (opt.has_value())
    {
        std::cout << opt.value();
    }
    opt.reset();
    system("pause");
}

 

posted @ 2019-06-24 16:04  osbreak  阅读(1201)  评论(0编辑  收藏  举报