如何编写一个带有默认参数的 lambda 的通用函数?
How to write a generic function that takes a lambda with a default argument?
我想在变量中存储一个函数。我有一个通用的 setter 函数来分配它。如果未指定函数,我想使用默认函数。我该如何实现?
到目前为止我的代码:
void(*fmain)();
template <typename Func>
void setFunc(Func f = [](){cout << "Working!" << endl;}){
fmain = f;
}
int main(){
setFunc();
fmain();
}
同时提供默认模板参数和(匹配的)默认函数参数:
void default_action(void) {cout << "Working!" << endl;};
template <typename Func = void ( * )(void)>
void setFunc(Func f = &default_action){
fmain = f;
}
我想在变量中存储一个函数。我有一个通用的 setter 函数来分配它。如果未指定函数,我想使用默认函数。我该如何实现?
到目前为止我的代码:
void(*fmain)();
template <typename Func>
void setFunc(Func f = [](){cout << "Working!" << endl;}){
fmain = f;
}
int main(){
setFunc();
fmain();
}
同时提供默认模板参数和(匹配的)默认函数参数:
void default_action(void) {cout << "Working!" << endl;};
template <typename Func = void ( * )(void)>
void setFunc(Func f = &default_action){
fmain = f;
}