История изменений
Исправление dimgel, (текущая версия) :
По твоей первой ссылке это есть, со static_assert(), и если мне от функтора нужно проверять только тип возвращаемого значения, наверное можно найти какие-нибудь type-traits чтобы избежать <class F, class...PP>. Потому что эта дрянь даже такое не хочет: void f(std::function<R(auto...)>) {}.
Но я по-прежнему не втыкаю, почему второй вариант в ТС с явным указанием f<P> не работает, да ещё какую-то дикую сигнатуру function<R(P, PP)> выводит.
Исходная версия dimgel, :
По твоей первой ссылке это есть, со static_assert(), и если мне от функтора нужно проверять только тип возвращаемого значения, наверное можно найти какие-нибудь type-traits чтобы избежать <class F, class...PP>. Потому что эта дрянь даже такое не хочет: void f(std::function<R(auto...)>) {}.
Но я по-прежнему не втыкаю, почему второй вариант в ТС с явным указанием f<P> не работает, да ещё какую-то дикую сигнатуру function<P, PP> выводит.