Здравствуйте, rg45, Вы писали: R>Вот тебе еще один вариант. В точности в твоей постановке, но гораздо проще в реализации, без туплов и всяких мета-чудес:
Да, выглядит попроще, на работе проверю. Сбилдит ли такое компилер VS2013.
Здравствуйте, rg45, Вы писали: R>Ну а куда он денется, там проще уже некуда. Обрати внимание, в gcc этот пример скомпилирован в режиме c++11.
Да, собралось, спасибо.
Здравствуйте, T4r4sB, Вы писали:
TB>Здравствуйте, ollv, Вы писали:
O>>Более того половина кода такого — генерится.
TB>В С++ настолько развитое метапрограммирование, что приходится брать внешние генераторы.
Знаешь, есть задачи которые никак не могут быть решены с помощью допустим того-же C#. С прогибанием уже существующего кода, который писали лет 20-30. А без этого забавно наблюдать как проект уходит в состояние экспоненциального взрыва. А еще забавнее попадать на проект, когда он уже в таком состоянии, когда добавление одного кейса (в правильном месте) требует наличие как минимум опытного синьера для тривиальной таски. Так вот, в плюсах в большинстве случаев, вывести проект из этого состояния, или двинуть в разработку параллельную архитектуру, с новой концепцией еще возможно, в то время как без метапрограмминга такие проекты, в большинстве своем, можно смело закапывать
TB>Расстрелять комитет нахрен.
Возможно комитет затянул с 11 стандартом, но в таком случае надо справедливо добавить, что Страуструпу надо поставить памятник. Может быть boost::MPL выглядел бы совсем по другому, а может и не было бы его.
П/С Вообще, я ожидал большего в таком контексте. Предъявлять претензии к языку за наличие метапрограмминга, мне кажется, не аргумент. На С++ можно строить архитектуру, во всяком случае некоторые ее части, вообще исключая шаблоны и метапрограммирование, в таком случае я наблюдал быстрый переход шарповиков из С# -> C++. Я ожидал, что разговор пойдет про ATS и прочие языки в парадигме доказательных алгоритмов. Там да дискуссия была бы интересна. А так вопросы из разряда — баба яга против, не совсем интересно. Дело в том, что есть много разных "фе" по каждому языку, но на основании этого требовать расстрела комитетов имхо некомильфо
Compiler can be as trained AI but can't compose music.
Antheil piano jazz sonata. Я болен ПГМ.
Здравствуйте, ollv, Вы писали:
O>П/С Вообще, я ожидал большего в таком контексте. Предъявлять претензии к языку за наличие метапрограмминга, мне кажется, не аргумент.
Я предъявляю языку за необоснованные претензии на якобы метапрограмминг.
O>Я ожидал, что разговор пойдет про ATS и прочие языки в парадигме доказательных алгоритмов.
Если тебе интересно — моё мнение, что быстрее написать и отладить на тех же прости господи крестах, чем доказать в ATS что твой код ок. Особенно если код быстро меняется.
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Здравствуйте, T4r4sB, Вы писали:
TB>Здравствуйте, ollv, Вы писали:
O>>П/С Вообще, я ожидал большего в таком контексте. Предъявлять претензии к языку за наличие метапрограмминга, мне кажется, не аргумент.
TB>Я предъявляю языку за необоснованные претензии на якобы метапрограмминг.
А почему якобы ?
O>>Я ожидал, что разговор пойдет про ATS и прочие языки в парадигме доказательных алгоритмов.
TB>Если тебе интересно — моё мнение, что быстрее написать и отладить на тех же прости господи крестах, чем доказать в ATS что твой код ок. Особенно если код быстро меняется.
а я вот думаю, что критические к сафети куски кода должны писаться именно на таких языках. Т/к неверная работа, логические ошибки и конфликты дороже выходят.
Compiler can be as trained AI but can't compose music.
Antheil piano jazz sonata. Я болен ПГМ.
Здравствуйте, T4r4sB, Вы писали:
TB>Здравствуйте, ollv, Вы писали:
O>> А почему якобы ?
TB>Потому что если нужна внешняя кодогенерация, то у языка не мет, а говно собачье.
При всем том, что я не совсем понимаю в деталях, что ты подразумеваешь под фразой "внешняя кодогенерация"
но я не согласен )))
Дело в том, что таки надо разделать язык, и технологические построения на нем. (C# — Net)
C++ COM DCOM bus / web для технологий может что угодно генериться. Ну и как бы надо давать точную задачу которую нельзя сделать с твоей точки зрения средствами С++. А я могу вот тебе сказать точно задачи с которыми не справятся С# и джава
разбор AST в llvm будет внешней кодогенерацией ?
Compiler can be as trained AI but can't compose music.
Antheil piano jazz sonata. Я болен ПГМ.