-
- Как уже сказали, размер шаблона никак не связан с размером
результирующего кода. Он может вычисляться в несколько констант и
наоборот сокращать выхлоп. Это будет работать даже на тиньке. - VladislavS.(12.01.2022 10:58)
- Это я понял, но у меня программа как ваши 2 шаблона - зачем мне
писать шаблон + его применение + остальную программу, если я могу
сразу написать как надо? Соотношение писанины как минимум 3 к 2 - symbions(12.01.2022 13:54)
- Один NOP проще без шаблонов написать, а десяток проще уже с
шаблоном. - VladislavS.(12.01.2022 14:16)
- Вот так VladislavS.(130 знак., 12.01.2022 14:49)
- А мне этот код понравился... До того момента, как я подумал
вставить задержку для мигания светодиодом, например,
Nops<1000000>(); это ж у меня прошивка сразу +1МБ. :-) - Costic(13.01.2022 11:58)
- 1 Мб это вы ещё легко отделались, NOP то он и больше 1 байта бывает. С дуру то и хрен сломать можно. - VladislavS.(13.01.2022 12:35)
- интересный случай... развернуть рекурсию в "длинну". др. словами если не ведаешь как реализована та или иная "вещь в библиотеке" можно попасть на такую хрень... Ну это "допустимо" на винче в 20ТБ и озу в 1 ТБ и 53 ядерном проце. - Zoro(13.01.2022 12:20)
- а так читабельнее: Mahagam(157 знак., 12.01.2022 23:46)
- Куда я попал.... :( Сами посмотрите как этот макрос будет работать
в таком месте? VladislavS.(1340 знак., 13.01.2022 00:07)
- Давайте посмотрим на это с другой стороны. Например, исходное
состояние, вы пишете какую-то программу и вам там понадобилось
поставить 100 ноп-ов. Ни каких макросов или шаблонов у вас еще нет.
Какие варианты? AlexBi(1582 знак., 13.01.2022 09:11)
- Специализацию для NonsensePost<"шаблон", "AlexBi">() вы только что сделали. Но ведь можно легко подставить туда же "макрос", "функция" и т.д. VladislavS.(65 знак., 13.01.2022 09:30)
- в 99% случаев все подобные примеры - выдуманы. на практике вместо
написания шаблона я в удобном текстовом редакторе вызов функции раз
10 размножу. ибо мне этот шаблон хрен где в другом месте
пригодится. - Mahagam(13.01.2022 00:23)
- А что такое? Не выходит
каменный цветокмакрос? А как люто плюсовал то. - VladislavS.(13.01.2022 00:32)- суть не в том, что на макросах сложно сделать 73 повторения, или
повторять любую функцию с любыми параметрами. а в том, что для
множества частных случаев простые макросы Си - вполне себе простое
и удобное решение. неуниверсальное, да. местами приводящее к
ошибкам. но чаще всего - рабочее. оно выглядит читабельнее чем
плюсы. почему-то - Mahagam(13.01.2022 01:34)
- Неуневирсально, не раборает, зато понятно почему. Зашибись! А что
лично вы сделали чтобы понимать написанное на С++? Может книжку
какую прочитали? - VladislavS.(13.01.2022 07:29)
- а с чего понимабельность плюсов падает с каждым стандартом? - Mahagam(13.01.2022 12:35)
- На самом деле с точностью до наоборот. В современных стандартах код пишется проще и более читаем. VladislavS.(631 знак., 13.01.2022 13:02)
- Как я всё больше убеждаюсь - универсальность зло. - symbions(13.01.2022 08:46)
- а с чего понимабельность плюсов падает с каждым стандартом? - Mahagam(13.01.2022 12:35)
- Неуневирсально, не раборает, зато понятно почему. Зашибись! А что
лично вы сделали чтобы понимать написанное на С++? Может книжку
какую прочитали? - VladislavS.(13.01.2022 07:29)
- Подмена цели detected. - Cкpипaч(13.01.2022 00:41)
- суть не в том, что на макросах сложно сделать 73 повторения, или
повторять любую функцию с любыми параметрами. а в том, что для
множества частных случаев простые макросы Си - вполне себе простое
и удобное решение. неуниверсальное, да. местами приводящее к
ошибкам. но чаще всего - рабочее. оно выглядит читабельнее чем
плюсы. почему-то - Mahagam(13.01.2022 01:34)
- А что такое? Не выходит
- Давайте посмотрим на это с другой стороны. Например, исходное
состояние, вы пишете какую-то программу и вам там понадобилось
поставить 100 ноп-ов. Ни каких макросов или шаблонов у вас еще нет.
Какие варианты? AlexBi(1582 знак., 13.01.2022 09:11)
- ; самым правым символом в ряду а не хватает - Evgeny_CD(12.01.2022 23:56)
- о. уже скомпилировал ) - Mahagam(13.01.2022 00:05)
- Куда я попал.... :( Сами посмотрите как этот макрос будет работать
в таком месте? VladislavS.(1340 знак., 13.01.2022 00:07)
- Такое да, понятно зачем symbions(135 знак., 12.01.2022 16:15)
- А мне этот код понравился... До того момента, как я подумал
вставить задержку для мигания светодиодом, например,
Nops<1000000>(); это ж у меня прошивка сразу +1МБ. :-) - Costic(13.01.2022 11:58)
- Вот так VladislavS.(130 знак., 12.01.2022 14:49)
- Один NOP проще без шаблонов написать, а десяток проще уже с
шаблоном. - VladislavS.(12.01.2022 14:16)
- Это я понял, но у меня программа как ваши 2 шаблона - зачем мне
писать шаблон + его применение + остальную программу, если я могу
сразу написать как надо? Соотношение писанины как минимум 3 к 2 - symbions(12.01.2022 13:54)
- аттини надо программить в хексе, как полагается настоящим мущщинам! - SciFi(12.01.2022 10:52)
- Размер шаблона никак не связан с размером кода. Шаблоны мощная
штука, понять их сильно не просто. Я вот не шибко силен в
понимании. - Evgeny_CD(12.01.2022 10:51)
- Я объясню. RxTx(4409 знак., 14.01.2022 22:16 - 22:45)
- Верно лишь отчасти. Когда земля была ещё чуть тёплой, программисты
заметили, что автоматическим выведением типов с помощью шаблонов
можно управлять. Так же, можно управлять ходом компиляции с помощью
технологии SFINAE. Вместе они (template + SFINAE) начали порождать
монстров типа Loki. Но сапиенс на то и хомо, что решил с этим
бороться. В языке появились средства вычислений на этапе компиляции
без шаблонов. Заодно они фактически заменили препроцессор на более
качественном VladislavS.(813 знак., 14.01.2022 22:57, ссылка, ссылка)
- Все что было написано выше - совершенно намеренный опуск/упрощение
деталей. Не стоит заниматься уточнением того что изначально должно
быть простым. © "Если учёный не может объяснить восьмилетнему
мальчику чем он занимается - он шарлатан" (Колыбель для кошки). - RxTx(14.01.2022 23:10)
- Почитают они это наши мальчики, подумают "всё это только чтобы
#ifdef не писать?" и пойдут питон осваивать. - VladislavS.(14.01.2022 23:22)
- Разумеется, кое-что нужно добавить, но уже потом. После того как
возникнет отчётливое представление что это такое в точности. Основной задачей было передать — "C++ templates" есть метод препроцессирования программы, очень развитый препроцессор. Добавить потом можно многое,
например что при разворачивании кода есть (косвенные) способы
инспектировать подставляемые типы на предмет наличия свойств, а это
ни что иное как вид рефлексии, т.е. само-исследования RxTx(116 знак., 14.01.2022 23:53)
- Да легко! Что вы все на шаблонах зациклены? Это лишь один из инструментов. Плюсы начинаются с классов. И у меня шокирующая новость для С-программистов. Они всё это время используют в коде классы! В С++ class и struct это по сути одно и то же, за исключением мелкого нюанса. Добавляете в struct-уру функции и можете смело называть их методами, а себя кулхацкерами :) - VladislavS.(15.01.2022 09:10)
- Разумеется, кое-что нужно добавить, но уже потом. После того как
возникнет отчётливое представление что это такое в точности. Основной задачей было передать — "C++ templates" есть метод препроцессирования программы, очень развитый препроцессор. Добавить потом можно многое,
например что при разворачивании кода есть (косвенные) способы
инспектировать подставляемые типы на предмет наличия свойств, а это
ни что иное как вид рефлексии, т.е. само-исследования RxTx(116 знак., 14.01.2022 23:53)
- "Не сыпь мне соль на рану" Я три дня убил на функцию описание
которой занимало пол страницы печатного текста! Когда разобрался
сформулировал в одно предложение "Отсчет долен стартовать только
при положении селектора АКПП в паркинге и не нажатой педали
тормоза" Убил бы песателей !!! - Aleksey_75(14.01.2022 23:18)
- Знакомо :) - RxTx(14.01.2022 23:22)
- Почитают они это наши мальчики, подумают "всё это только чтобы
#ifdef не писать?" и пойдут питон осваивать. - VladislavS.(14.01.2022 23:22)
- Все что было написано выше - совершенно намеренный опуск/упрощение
деталей. Не стоит заниматься уточнением того что изначально должно
быть простым. © "Если учёный не может объяснить восьмилетнему
мальчику чем он занимается - он шарлатан" (Колыбель для кошки). - RxTx(14.01.2022 23:10)
- Страуструп Дизайн и Эволюция C++.djvu Довольно малоизвестная книга, проливающая свет на происходяшее. RxTx(1 знак., 14.01.2022 22:21, ссылка)
- Верно лишь отчасти. Когда земля была ещё чуть тёплой, программисты
заметили, что автоматическим выведением типов с помощью шаблонов
можно управлять. Так же, можно управлять ходом компиляции с помощью
технологии SFINAE. Вместе они (template + SFINAE) начали порождать
монстров типа Loki. Но сапиенс на то и хомо, что решил с этим
бороться. В языке появились средства вычислений на этапе компиляции
без шаблонов. Заодно они фактически заменили препроцессор на более
качественном VladislavS.(813 знак., 14.01.2022 22:57, ссылка, ссылка)
- Я объясню. RxTx(4409 знак., 14.01.2022 22:16 - 22:45)
- Как уже сказали, размер шаблона никак не связан с размером
результирующего кода. Он может вычисляться в несколько констант и
наоборот сокращать выхлоп. Это будет работать даже на тиньке. - VladislavS.(12.01.2022 10:58)