Size: a a a

2020 August 12

D

Danya in supapro.cxx
Vladimir Suisei
Не, я лучше через функшн
Любитель оверхеда))
источник

VS

Vladimir Suisei in supapro.cxx
В чем оверхед то?
источник

AK

Anton Kviatkovskii in supapro.cxx
Ну такое, если std::function не на хотпасе - это игра на спичках
источник

AP

Alexander Potapov in supapro.cxx
https://godbolt.org/z/ez7ajP

Вот это бесит
источник

VS

Vladimir Suisei in supapro.cxx
Хотпас?
источник

D

Danya in supapro.cxx
std::function аллоцирует и использует type erasure
источник

ПК

Побитый Кирпич... in supapro.cxx
std::function норм, если код нешаблонный
источник

D

Danya in supapro.cxx
Anton Kviatkovskii
Ну такое, если std::function не на хотпасе - это игра на спичках
Ну я больше шутил конечно
источник

AM

Alexey Medov in supapro.cxx
Отдам бесплатно книгу https://ibb.co/3CqgC9r

Открывал пару раз ради интереса, так даже не читал.

Москва. Пишите в личку если кто то хочет забрать.
источник

AK

Anton Kviatkovskii in supapro.cxx
Да, с выводом типа в плюсах проблема
источник

AK

Anton Kviatkovskii in supapro.cxx
В данном случае
источник

AP

Alexander Potapov in supapro.cxx
Я схитрил и сделал тогда перегрузку для F&& которая явно кастит std::function{ std::forward<F>(f) } и передаёт дальше
источник

DP

Denis Paukaev 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>
template<typename R, typename F, typename... Args>
concept Callable = std::is_invocable_r_v<R, F, Args...>;
источник

DP

Denis Paukaev in supapro.cxx
имхо если не нужен type erase, например не надо хранить в контейнере эти функции, а просто прокинуть и внизу где-то дёрнуть, то не понятно, зачем тащить std::function
источник

VS

Vladimir Suisei in supapro.cxx
Есть где-нибудь онлайн компилятор с 17 стандартом? ideone не поддерживает
источник

AP

Alexander Potapov in supapro.cxx
godbolt
источник

VS

Vladimir Suisei in supapro.cxx
Неудобно
источник

VS

Vladimir Suisei in supapro.cxx
Не нашел как там запустить код
источник

AP

Alexander Potapov in supapro.cxx
Добавляешь окно execution only
источник

AE

Andrew Evseev in supapro.cxx
Я правильно понимаю, что typeid() от типа вычисляется в компайлтайме и не несёт оверхеда, в отличии от typeid() примененного к выражению с полиморфными объектами?
источник