在 C++20 中调用纯模板 lambda 回调
Calling a purely template lambda callback in C++20
在 C++20 中,我们获得了模板化的 lambda,太棒了!
[]<class T>(){};
是否可以使用模板参数调用 lambda 回调,但没有从中推断出它的参数?
例如,
template <class Func>
void do_it(Func&& func) {
// Call lambda with template here, but don't provide extra arguments.
// func<int>(); ?
}
do_it([]<class T>(){ /* do something with T */ });
Is it possible to call a lambda callback with a template parameter,
but no argument to deduce it from?
这可能就是你想要的
template <class Func>
void do_it(Func&& func) {
func.template operator()<int>();
}
在 C++20 中,我们获得了模板化的 lambda,太棒了!
[]<class T>(){};
是否可以使用模板参数调用 lambda 回调,但没有从中推断出它的参数?
例如,
template <class Func>
void do_it(Func&& func) {
// Call lambda with template here, but don't provide extra arguments.
// func<int>(); ?
}
do_it([]<class T>(){ /* do something with T */ });
Is it possible to call a lambda callback with a template parameter, but no argument to deduce it from?
这可能就是你想要的
template <class Func>
void do_it(Func&& func) {
func.template operator()<int>();
}