LINUX.ORG.RU

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

Исправление kvpfs, (текущая версия) :

Ты не удосужился на осиливание базовых правил, при этом находишь возможным набрасывать кучи дерьма постоянно.

Но я по-прежнему не втыкаю, почему второй вариант в ТС с явным указанием f не работает, да ещё какую-то дикую сигнатуру function<R(P, PP)> выводит.

   // правильно так
   f(std::function([&](P) -> R { return R{}; }));

Во время поиска подходящего шаблона никакие приведения типов не допускаются, здесь всё строже. Потом все подходящие шаблоны + не шаблоны попадают в общий overload set и вызывается самый подходящий со всеми обычными кастами. Блин, букварь, первый класс.

Исходная версия kvpfs, :

Ты не удосужился на осиливание базовых правил, при этом находишь возможным набрасывать кучи дерьма постоянно.

Но я по-прежнему не втыкаю, почему второй вариант в ТС с явным указанием f не работает, да ещё какую-то дикую сигнатуру function<R(P, PP)> выводит.

   // правильно так
   f(std::function([&](P) -> R { return R{}; }));

Во время поиска подходящего шаблона никакие приведения типов не допускаются, здесь всё строже. Блин, букварь, первый класс.