这是一个非常基本的问题。在以下情况下使用 boost::optional 有什么好处:
int somefunction(boost::optional<const Param&> value = getDefaultParam()){
return value->dosomething();
}
或者
int somefunction(boost::optional<const Param&> value){
if (!value)
value = getDefaultParam();
return value->dosomething();
}
而不是仅仅这样做:
int somefunction(const Param& value = getDefaultParam()){
return value.dosomething();
}
这是针对我知道我将 Param 对象初始化为默认值的特定情况。在 API 或 API 客户端的 Param 上使用 boost::optional 有什么好处吗?