小编Gor*_*eng的帖子

使用std :: optional作为常规指针与使用has_value()和value

std::optional 可以使用语法来访问其值,类似于普通指针一样。

std::optional<string> some_str;
if (some_str)
    (*some_str).c_str();
Run Code Online (Sandbox Code Playgroud)

但它也有两个功能,has_value()value()提供访问其价值和检查,如果该值存在。

std::optional<string> some_str;
if (some_str.has_value())
    some_str.value().c_str();
Run Code Online (Sandbox Code Playgroud)

我想知道这两者之间有什么区别?
1.更冗长
2.性能?
3.更好的日志记录和调试?value()会抛出异常。

c++ c++17 stdoptional

1
推荐指数
2
解决办法
188
查看次数

标签 统计

c++ ×1

c++17 ×1

stdoptional ×1