LINUX.ORG.RU

История изменений

Исправление 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> выводит.