【发布时间】:2019-09-30 15:35:36
【问题描述】:
我有一段 C++ 代码
auto returnvalue = m_func(x, y, z);
m_func 的类型取决于模板参数。之后我处理returnvalue,它工作正常,直到m_func 是一个返回void 的函数。但我需要一种机制来调用
m_func(x,y,z)
如果 m_func 的返回值为 void 而上述版本不是。总的来说,在伪代码中它需要看起来像
if ( returnvalue of m_func is void )
call m_func directly
else
auto retval = m_func(...)
handle the return value
这些如何用 C++11/14 完成?
编辑:
m_func 是:
void func(type1 arg1, type2 arg, ...)
或
std::tuple<...> func(type1 arg1, type2 arg, ...)
【问题讨论】:
-
m_func的模板类型是什么?论据? -
这真的取决于。你能告诉我们你是怎么打电话给
my_func的吗(它在什么上下文中)? -
处理返回值是什么意思?创建minimal reproducible example
-
@eerorika 在 OP 的问题中应该无关紧要。
标签: c++