【发布时间】:2015-12-10 10:59:10
【问题描述】:
我是c++11的新手,我定义了一个模板来接受一个函数作为参数,
template <typename T>
void print_for_each(vector<T> v, std::function<void (T)> func){
std::for_each(v.begin(), v.end(), func);
}
我尝试将以下 Lambda 表达式传递给 print_for_each,
auto printElement = [](int y) {
std::cout << y << " ";
};
然后我收到编译器警告说,
错误:没有匹配的函数调用“print_for_each”
然后我把模板函数改成,
std::function<void (int)> func)
这次有效。 我的问题是,std::function 可以采用模板类型 T 吗?
感谢您的回答! :)
【问题讨论】: