Size: a a a

2021 February 16

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Никто не запрещает попытаться инстанцировать скажем std::copy с интами вместо итераторов
источник

D

Dmitriy in supapro.cxx
d7d1cd
Блин... Надо пример. Попробую сейчас накидать, потом покажу, а вы подскажите, где надо вставить статик ассерт.
int foo(const string& str) { ... }
template <typename F, typename... Args>
decltype(auto) call_fn(F f, Args... args) {
return std::invoke
(f, args...);
}
call_fn(&foo, 4);
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
d7d1cd
Я еще не писал код с шаблонами с переменным числом аргументов. Не понимаю как могут быть неверные аргументы, если метод шаблонный, он по определению должен уметь принимать аргументы любых типов...
Концепты призваны решить проблему видимой всеядности шаблонов
источник

d

d7d1cd in supapro.cxx
Написал пример, но он не компилируется. Подскажите, где ошибка.
https://godbolt.org/z/K73TvY
источник

SH

Serhii Herashchenko in supapro.cxx
Тебе же пишет ошибку
источник

SH

Serhii Herashchenko in supapro.cxx
Parameter pack is not expanded
источник

SH

Serhii Herashchenko in supapro.cxx
callback(args...)
источник

d

d7d1cd in supapro.cxx
Serhii Herashchenko
Parameter pack is not expanded
Дак да, вижу. Но не понимаю как исправить.
источник

d

d7d1cd in supapro.cxx
Serhii Herashchenko
callback(args...)
Не помогает.
источник

АВ

Александр Водянников... in supapro.cxx
&& убери
источник

SH

Serhii Herashchenko in supapro.cxx
d7d1cd
Не помогает.
А теперь какая ошибка
источник

d

d7d1cd in supapro.cxx
Спасибо. Не соображу что означает && в этом контексте
источник

d

d7d1cd in supapro.cxx
Serhii Herashchenko
А теперь какая ошибка
Подсказка выше помогла https://t.me/supapro/834365
источник

SH

Serhii Herashchenko in supapro.cxx
d7d1cd
Спасибо. Не соображу что означает && в этом контексте
Forwarding reference
источник

SH

Serhii Herashchenko in supapro.cxx
Попробуй ещё не убирать &&, а написать
callback(std::forward<Args>(args)...);
источник

d

d7d1cd in supapro.cxx
Serhii Herashchenko
Forwarding reference
Сложна... ))
источник

АВ

Александр Водянников... in supapro.cxx
Если через std::forward<Args>(args)... - то и в Foo аргументы должны &&
источник

АВ

Александр Водянников... in supapro.cxx
но зачем для простых типов
источник

d

d7d1cd in supapro.cxx
Serhii Herashchenko
Forwarding reference
Можете показать во что инстанциируется это:
template <class Ret, class... Args>
Ret Method(Ret (*callback)(Args...), Args&&... args);

В таком коде:
int foo(int, char);
Method(foo, 1, '2');
источник

АВ

Александр Водянников... in supapro.cxx
так не сработает же
источник