std::optional
可以使用类似于普通指针的语法访问其值,例如 .
std::optional<string> some_str;
if (some_str)
(*some_str).c_str();
但它也有两个功能,has_value()
提供value()
对其值的访问以及检查该值是否存在。
std::optional<string> some_str;
if (some_str.has_value())
some_str.value().c_str();
我想知道这两者有什么区别是为了?
1. 更冗长
2. 性能?
3. 更好的日志记录和调试?value()
会抛出异常。