@ProCxx

Страница 877 из 2477
Valeriy
17.05.2017
12:31:58
Кто-нибудь знает, почему конструкция 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]

Maxim Didenko
17.05.2017
12:33:10
Всем привет, где можно найти пособие по boost?

Alex Фэils?︙
17.05.2017
12:33:28
Всем привет, где можно найти пособие по boost?
А еще есть буст девелопмент кукбук, автор тут тож есть)

Google
Maxim Didenko
17.05.2017
12:34:09
?

Александр
17.05.2017
12:34:17
#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]
ну.. это всё заменяется template<typename T> void foo(T a) { std::cout << " : " << a << std::endl; } template<typename... Args> void bar(Args... args) { int _[] { (foo(args), 0)... }; } int main(int argc, char const *argv[]) { bar(1, "{2}",3.14, "[4]"); return 0; } Да и форвард нет смысла юзать, если && не прописывать.

Maxim Didenko
17.05.2017
12:34:20
мне еще рано таким людям писать

я еще слишком дно

Antony
17.05.2017
12:34:32
А еще есть буст девелопмент кукбук, автор тут тож есть)
Можно даже поэкспериментировать с кодом (покомпилить и позапускать) онлайн http://apolukhin.github.io/Boost-Cookbook-4880OS/

Antony
17.05.2017
12:35:10
на здоровье :)

Maxim Didenko
17.05.2017
12:35:26
:)

очередной англ ман.... эх где мой томик английского

Konstantin
17.05.2017
12:36:38
очередной англ ман.... эх где мой томик английского
Вобще, имхо, не надо бояться читать на англ, все равно в итоге придется, а привыкнешь быстро

Alexey
17.05.2017
12:36:44
/me грустит потому что его вакансия С++алгоритмиста Maps.me не постится в работный канал :(

Google
FailsBot
17.05.2017
12:36:44
Alexey грустит потому что его вакансия С++алгоритмиста Maps.me не постится в работный канал :(

Valeriy
17.05.2017
12:37:15
Да и советую вопрос перечитать
В вопросе было про стандарт. Просто распаковка ... так проиcходит. Это не связано с каким то прямо запретом стандрта. В 17-м немного изменили

Maxim Didenko
17.05.2017
12:37:16
Вобще, имхо, не надо бояться читать на англ, все равно в итоге придется, а привыкнешь быстро
да стараюсь, меня напрягают сложные предложения и куча непонятных слов, потому что на уроках ни в школе, ни в вузе не учил их :D

Александр
17.05.2017
12:37:53
В вопросе было про стандарт. Просто распаковка ... так проиcходит. Это не связано с каким то прямо запретом стандрта. В 17-м немного изменили
В вопросе было "почему запрещено?", а Вы прислали код, который намного длиннее приведённого (рабочего!), рекурсивно делающий тоже самое. Зачем?

Valeriy
17.05.2017
12:40:00
В вопросе было "почему запрещено?", а Вы прислали код, который намного длиннее приведённого (рабочего!), рекурсивно делающий тоже самое. Зачем?
Ну ненадо так не надо. Вы написали что ваше решение кажется вам костыльным. Использовать массив — действительно хак. Рекрсия в этом случае более естественна, хотя и длиннее. Стандарт не заприщает вашу конструкцию. Она просто не работает так как вы написали. Параметры распаковываются через запятую до 17-го стандата.

Maxim Didenko
17.05.2017
12:40:58
17й уже commit? или еще "почти почти"?

Maxim Didenko
17.05.2017
12:41:43
commit
good

Nikolai
17.05.2017
12:42:22
commit
куда летит время? ТУт люди 11 плюсы не освоили, а мир уже 17 принял и использует

Konstantin
17.05.2017
12:42:38
14 и 17 изи освоить

Там же в основном синтактический сахар и подобная фигня

Alex Фэils?︙
17.05.2017
12:43:05
14 и 17 изи освоить
+, большей частью багфиксы

Konstantin
17.05.2017
12:43:15
Сами стандартизаторы говорят, что 14 и17 это фиксы 11

Александр
17.05.2017
12:43:44
Тем более c++11,14,17 скорее упрощают код, нежели усложняют. Синтаксический сахар наоборот попроще изучать

Nikolai
17.05.2017
12:43:52
Konstantin
17.05.2017
12:43:58
Да)

Nikolai
17.05.2017
12:44:09
Так и что вы рекомендуете? Сразу вместо 11 переходить на 17

Google
Nikolai
17.05.2017
12:44:11
имли 14?

Konstantin
17.05.2017
12:44:11
Fixed

Не, курить 11

Nikolai
17.05.2017
12:45:06
Не, курить 11
а потом перечитывать 14 и 17?

Konstantin
17.05.2017
12:45:13
Да они короткие же

Nikolai
17.05.2017
12:45:22
точнее штудировать*

Nikolai
17.05.2017
12:49:17
И что у вас вот это foo(args), ...; скомпилилось?
ну если по новому стандарту - должно

Александр
17.05.2017
12:49:41
И что у вас вот это foo(args), ...; скомпилилось?
На вид - да. Реально не тестил

Nikolai
17.05.2017
12:50:00
17-й
ну его и имел ввиду

Valeriy
17.05.2017
12:50:00
Александр
17.05.2017
12:50:14
Не, не компилится. Выясняю

Во, заработало

https://godbolt.org/g/ZGqLa0

(foo(args), ...);

Anton
17.05.2017
13:34:21
Интересно, а есть ли в планах у комитета добавить для tuple итераторы?

Александр
17.05.2017
13:35:13
видел пропозал по for (blabla)... какой-то

явно итераторы не поюзаешь по очевидным причинам

Google
Admin
ERROR: S client not available

Александр
17.05.2017
13:35:56
а вот этакий constexpr цикл, который будет разворачиваться - было бы круто

Александр
17.05.2017
13:37:08
https://stdcpp.ru/proposals/f0075759-68a5-47e4-b39b-8cfc76c33448

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0589r0.pdf

первое превращается во второе при for constexpr (int i = 0; i < mytuple.size(); i++) { auto elem = std::get<i>(mytuple); // i is constexpr - okay, should compile }

Nikolai
17.05.2017
14:10:22
Прикалывает меня cppreference ))) Нажимаешь на кнопку в примере "Run this code" , а он компилиться и выкидывает ошибки компиляции_)

Alex Фэils?︙
17.05.2017
14:10:41
ага, я в бота хочу добавить такую шляпу

Oleg
17.05.2017
14:11:15
Alex Фэils?︙
17.05.2017
14:11:23
и электрички тоже. специально вчера разбирался с электричками твоего региона. Теперь надо нормальный апи у бота зафигарить

Alexander
17.05.2017
14:21:47


Толкают юниты в стандарт

Friedrich
17.05.2017
14:22:42
Какие именно юниты?

А, единицы измерения?

Alexander
17.05.2017
14:22:54
https://wiki.hsr.ch/PeterSommerlad/CppNow2017Units#0

Да, единицы измерения

Friedrich
17.05.2017
14:23:11
Норм, это полезная тема.

Я как-то раз взялся валидировать единицы измерения у себя в физической модели, и нашёл баг.

Всё, что помогает нам в автоматическом режиме найти баг — абсолютное добро.

Google
Alex Фэils?︙
17.05.2017
14:24:48
я тут тоже как-то с юнитами боролся

Friedrich
17.05.2017
14:25:03
а кинь репу
Не, это не в опенсурсе :(

Alex Фэils?︙
17.05.2017
14:25:22
эх. а мини-PoC можешь в лс кинуть?

Berkus
17.05.2017
14:25:32
Толкают юниты в стандарт
вот это охуенчик

люблю эту штуку

Alexander
17.05.2017
14:26:11
@antoshkka а constexpr_allocator норм вчера зашёл)

Berkus
17.05.2017
14:26:16
эх. а мини-PoC можешь в лс кинуть?
да любая фигня где ты метры на ньютоны умножаешь, а на самом деле там были джоули, да и вообще дюймы

Nikolai
17.05.2017
14:26:23
Толкают юниты в стандарт
Какие именно? по какой системе и все такое, моя просто не в курсах что там пилить начлаи)

Страница 877 из 2477