如果我没有未知类型的东西要退货,我应该退回什么

what should I return if I don't have something to return for an unknown type

本文关键字:我应该 什么 未知 类型 如果      更新时间:2023-10-16

对于以下代码,如果没有要返回的内容,我应该返回什么?目前,我做了一些类似T()的事情,但我不确定它是否正确。

template<typename T1, typename T2>
tuple<T1, T2, bool> CBR<T1, T2>::getSomething(T1 t)
{
    // here I I don't have something of time T2 or T2 to return
    if( ... )
        return make_tuple(T1(), T2(), false); // @FIXME
    if( ... )
        return make_tuple(something.tp, something.ts, false);
    else
        return make_tuple(something.tp, something.ts, true);
}
boost::optional<tuple<T1, T2, bool> >

"好"的回归路径将保持不变;"FIXME"将变为:

return boost::none;

这可以允许您的类与不支持默认构造的类型一起使用。