Size: a a a

2020 August 12

AP

Alexander Potapov in supapro.cxx
Там с function лажа, что нужно явно в него лямбду кастить вроде
источник

SH

Serhii Herashchenko in supapro.cxx
Если 20, можно через концепты и std::is_incocable
источник

AK

Anton Kviatkovskii in supapro.cxx
Alexander Potapov
Там с function лажа, что нужно явно в него лямбду кастить вроде
Нет
источник

SH

Serhii Herashchenko in supapro.cxx
Serhii Herashchenko
Если 20, можно через концепты и std::is_incocable
Если ниже, то через свинью
источник

AK

Anton Kviatkovskii in supapro.cxx
Alexander Potapov
Там с function лажа, что нужно явно в него лямбду кастить вроде
лямбда отлично кладётся в function и без кастов
источник

VS

Vladimir Suisei in supapro.cxx
Anton Kviatkovskii
Зачем тебе шаблон?
Я не знаю что мне надо и поэтому спрашиваю
источник

ПК

Побитый Кирпич... in supapro.cxx
Anton Kviatkovskii
лямбда отлично кладётся в function и без кастов
function гавно, туда нельзя unique_ptr закэпчурить
источник

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Я не знаю что мне надо и поэтому спрашиваю
Тебе нужен std::function, если не докажешь иного
источник

VS

Vladimir Suisei in supapro.cxx
Зачем кстати нужно передавать через шаблоны функцию если можно через этот std::function
источник

VS

Vladimir Suisei in supapro.cxx
Просто фича и очередной пример того как в с++ одно и то же достигается разными методами?
источник

AK

Anton Kviatkovskii in supapro.cxx
Vladimir Suisei
Зачем кстати нужно передавать через шаблоны функцию если можно через этот std::function
Иногда нужна семантика типа, который туда передаётся
источник

AK

Anton Kviatkovskii in supapro.cxx
std::function это type erasure
источник

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Зачем кстати нужно передавать через шаблоны функцию если можно через этот std::function
Потому что function имеет оверхед и не принимает move only функторы
источник

AK

Anton Kviatkovskii in supapro.cxx
Он не оставляет ничего кроме оператора()
источник

ПК

Побитый Кирпич... in supapro.cxx
Vladimir Suisei
Просто фича и очередной пример того как в с++ одно и то же достигается разными методами?
function позволяет принимать функции в нешаблонном коде
источник

VS

Vladimir Suisei in supapro.cxx
Anton Kviatkovskii
Он не оставляет ничего кроме оператора()
Ну это же функция а не объект, там кроме скобок и не надо ничего
источник

D

Danya in supapro.cxx
Vladimir Suisei
Что например принимает int, возвращает char
template <typename TFunc, typename TReturn, typename... TArgs>
concept callable = requires(TFunc func, TArgs... args) {
 { func(args...) } -> std::same_as<TReturn>;
};

template <typename T>
  requires callable<T, char, int>
источник

AK

Anton Kviatkovskii in supapro.cxx
Vladimir Suisei
Ну это же функция а не объект, там кроме скобок и не надо ничего
В твоём случае да
источник

AK

Anton Kviatkovskii in supapro.cxx
Но я могу захотеть, что б это был функтор у которого помимо оператор() было бы ещё что-то
источник

VS

Vladimir Suisei in supapro.cxx
Danya
template <typename TFunc, typename TReturn, typename... TArgs>
concept callable = requires(TFunc func, TArgs... args) {
 { func(args...) } -> std::same_as<TReturn>;
};

template <typename T>
  requires callable<T, char, int>
Не, я лучше через функшн
источник