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()会抛出异常。