【发布时间】:2015-01-16 20:36:33
【问题描述】:
我有一个类似于以下的包装函数:
template<typename Func, typename ... Args>
void func(Func f, Args ... args) {
...
f(args...);
...
}
是否可以在编译时从类型Func中提取返回类型?
例如,用户有代码并以如下方式调用func:
template<typename T>
T add(const T& l, const T& r) {
return l + r;
}
int main(int argc, char** argv) {
double a = 4.5, b = 5.5;
func(add<double>, a, b);
return 0;
}
我们能否在func 的调用中推断出一个函数被传递给它并返回一个double?我想将返回类型信息用于func 中的其他内容。
【问题讨论】: