如果我没有未知类型的东西要退货,我应该退回什么
what should I return if I don't have something to return for an unknown type
对于以下代码,如果没有要返回的内容,我应该返回什么?目前,我做了一些类似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;
这可以允许您的类与不支持默认构造的类型一起使用。
相关文章:
- 我应该使用什么来代替void作为变体中的替代类型之一
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 违反const正确性:我应该现实地期待什么问题
- 我应该包含什么来制作 boost.python 扩展?
- 我应该将什么传递给glfwSetWindowSizeCallback?
- 我应该在 main 函数中写什么来测试我的问题?
- 我应该返回什么而不是标准::shared_ptr<>&?
- 这是什么类型的C++语法,我应该采取什么步骤来理解这一点
- 在从 C++ 转换为 C# 的代码中,我应该使用什么而不是 memcpy?
- C++我应该用什么来保存格式化为字符串变量(如sprintf())的文件
- 我应该使用什么信号来终止/终止Windows上的应用程序
- 为什么我应该在scanf()-家族成员中包含一个长度修饰符作为参数?有什么好处?使用长度修改器进行扫描的作用
- 我应该在服务模板中的什么位置添加自己的代码?
- mfc CEdit 我应该什么时候进行验证?
- 在使用 boost 共享互斥体时,我应该在什么情况下使用 owns_lock() 函数
- 操纵器,C 我应该使用什么顺序
- 我应该什么时候使用(!somevar)vs essert()
- 我应该什么时候使用 *,什么时候使用 &?
- 我应该什么时候通过 T const& 返回?
- 我应该什么时候传递"T* const&"类型的指针?