在 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>();
}