これは非常に基本的な質問です。次のシナリオで 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 を使用する利点はありますか?