【发布时间】:2021-02-26 10:45:40
【问题描述】:
我正在尝试将模板化函子传递给模板化函数。 代码如下所示:
template<typename T>
T func_1(T &a) {
return a;
}
template <typename T>
T test(T &a, std::function<T(T&)> &func){
return func(a);
}
int main(){
int a = 5;
std::cout << test(a, func_1) << std::endl;
}
但是,我得到以下编译错误:
从''类型的右值对'std::function
&'类型的非常量引用的初始化无效
如果我删除模板,代码就可以工作。有人可以帮我理解为什么吗?
【问题讨论】: