Vergil
Владивосток?
Vergil
У меня 12 дня
Vladislav
а у меня 6 вечера
Vergil
16 число?
Vladislav
угу
Vergil
У нас то 17
Vladislav
из будущего пишете, ага
Vergil
Сахалин, детка
Vergil
Разница в 18 часов? Ты в Америке чтоль?
Vladislav
СФ, да
Vergil
Круто
Vergil
Вот и пообщались сквозь время)))
babysitter
Мерс много на самом деле спорного пишет, но цельная позиция у него конечно особая, как и сами ++ имхо
Это ж не Саттер, что там ты считаешь спорным? Один пример приведи хотя бы.
Anonymous
Всем хай, можете посоветовать годные курсы по с++?
Pepe 🐸
Имхо годно понятно и с примерами
Anonymous
Спасибо
Anonymous
Я худо-бедно языком владею, но тем не менее — есть годнота на русском?
Dogma
Я худо-бедно языком владею, но тем не менее — есть годнота на русском?
Все же лучше что то англоязычное брать, очень много всего хорошего
Anonymous
Спасибо
Александр
Кто-нибудь знает, почему конструкция template<class... Args> void do_foo_with_all_args(Args... args) { foo(args)...; } запрещена стандартом и приходится делать костыль: template<class... Args> void do_foo_with_all_args(Args... args) { int _[] { (foo(args), 0)... }; } ?
Крылатый
Думаю, тебе fold-expressions нужны тут.
Danil
template<class... Args> void do_foo_with_all_args(Args... args) { foo(args), ...; }
Крылатый
Это не лямбда.
Danil
вот так должно сработать по идее
Крылатый
Это массив.
Александр
а если я хочу static_assert(std::is_integer_v<Args>)...; ?
Александр
без рекурсии не обойдёшься
Крылатый
C++17 доступен тебе?
Александр
хотя в этом примере можно с &&
Александр
+
Крылатый
Тогда попробуй fold
Danil
http://en.cppreference.com/w/cpp/language/fold
Nikolai
Это массив.
все посмотрел внимательней, извиняюсь
Александр
template<class... Args> void do_foo_with_all_args(Args... args) { foo(args), ...; }
если такое сработает, то еще норм
Danil
если такое сработает, то еще норм
ну вот это как раз фолд
Danil
оно там по оператор comma раскроется
Александр
но всё-таки вопрос был в другом - в чем причина, что приведённый мной код не стандартизован?
Berkus
потому что разворачивается оно через ,
Berkus
просто налепить f(arg)f(arg)f(arg) получится фигня
Nikolai
если такое сработает, то еще норм
ну так правильно, такое обьявление вкатать))
Александр
но я хочу через ; разворачивать
Danil
там можно вроде без фолда
Danil
вспомнить бы как там писалось)
Danil
template<class... Args> void do_foo_with_all_args(Args... args) { foo(args...); }
Александр
так он вызовет foo(arg1, arg2, .....)
Danil
или тут оно в дичь развернется?
Danil
а, да
Danil
эх, писать бы еще на свежих плюсах чтобы их помнить
Danil
Александр
в этом плане хорошо для себя писать. взял последнюю ветку gcc/clang и радуешься
Lucifer
Кто умеет решать транспортные задачи методом минимального угла?
Александр
по-моему не тот чатик
Poplav
template<class... Args> void do_foo_with_all_args(Args... args) { foo(args...); }
template <typename ...Params> void f(Params&&... params) { y(std::forward<Params>(params)...); }
Poplav
что-то типо этого тебе нужно?
Berkus
нет
Berkus
ему нужно y(arg1); y(arg2); y(arg3);
Nikolai
в этом плане хорошо для себя писать. взял последнюю ветку gcc/clang и радуешься
Эх мне бы так.... но с++98 и пердячий пар - залог нудной работы
Berkus
https://github.com/mapbox/jni.hpp/blob/master/include/jni/type_signature.hpp#L53 примерно как вот это вот
Александр
что-то типо этого тебе нужно?
не, выше уже написали. Всё решается через ,
Poplav
@smertig Какой вариант работает у тебя?
Александр
@smertig Какой вариант работает у тебя?
написанный в изначальном посте - через int _[] { (foo(args), 0)...};
Poplav
что принимает foo()?
Александр
да что угодно
Александр
я не про perfect forwarding сейчас, если что
Александр
template <class T> void foo(const T& t) { std::cout << t; }
Александр
🦥Alex Fails
А,вижу
Valeriy
Кто-нибудь знает, почему конструкция template<class... Args> void do_foo_with_all_args(Args... args) { foo(args)...; } запрещена стандартом и приходится делать костыль: template<class... Args> void do_foo_with_all_args(Args... args) { int _[] { (foo(args), 0)... }; } ?
#include <iostream> template<typename T> void foo(T a) { std::cout << " : " << a << std::endl; } void bar() {} template<typename T> void bar(T &&arg) { foo(std::forward<T>(arg)); } template<typename T, typename... Args> void bar(T &&arg, Args&&... args) { foo(std::forward<T>(arg)); bar(std::forward<Args>(args)...); } int main(int argc, char const *argv[]) { bar(1, "{2}",3.14, "[4]"); return 0; } g++ -std=c++11 -O2 t.cpp -o t.bin : 1 : {2} : 3.14 : [4]
Maksim
Всем привет, где можно найти пособие по boost?
🦥Alex Fails
🦥Alex Fails
Всем привет, где можно найти пособие по boost?
А еще есть буст девелопмент кукбук, автор тут тож есть)
Maksim
😱