【发布时间】:2014-06-20 19:59:51
【问题描述】:
我不知道如何调用函数call。
它是一个模板类,带有一个模板函数调用。但是我该如何使用这段代码呢?
#include <iostream>
#include <conio.h>
#include <functional>
template <typename Result> class Imp {
template <typename ...Args> int call(std::function<Result(Args...)> func, Args... args) {
return 0;
}
};
int f(double a, double b) {
return (int)a+b;
}
int main() {
Imp<int> a;
a.call<double, double>(f, 1., 1.); //!
}
error C2784: 'int Imp<int>::call(std::function<Result(Args...)>,Args...)' : could not deduce template argument for 'overloaded function type' from 'overloaded function type'
with
[
Result=int
]
: see declaration of 'Imp<int>::call'
【问题讨论】:
-
@sp2danny 我怀疑英文单词的选择给这个问题带来了一定的气味。正在修复...
标签: c++ templates c++11 variadic-templates std-function