auto f1 = []<typename T>(T) { return T{}; };
auto f2 = []<typename T>()  { return T{}; };
int main()
{
    f1(1);     // ok
    f2<int>(); // err: expected primary-expression before 'int'
}
Why does C++20 not allow to call a generic lambda with an explicit type?
 
     
    