-
- Бывает и выпендрёжь, конечно, но не обязательно. Ну просто есть
кого-то рабочик код на плюсах, не переписывать же его для форума
специально. - VladislavS.(30.09.2022 16:49)
- Проблема с терминологией. Где заканчивается "Си с классами" и
начинаются плюсы? Имхо, подходы в плюсах(в Си с классами ) в
некотором роде конечно удобнее, но все прекрасно реализуется на
теплом-ламповом Си. А все эти метапрограммирования в топку. Что и
иллюстрирует картинка ТС . - IBAH(30.09.2022 16:55)
- Вы просто не умеете его готовить. Я бы мог бесконечно показывать
примеры, но это непробиваемо. Сразу авторитетно докажут, что у них
для этого есть конфигуратор/скрипт/утилита и это тру вэй.
Проходили. - VladislavS.(30.09.2022 17:01)
- Пишите статью и ссылку сюда. "Ябпочитал" - Dingo(30.09.2022 17:22)
- Статья, в отличии от пятничного трёпа, требует времени. На просто
почитать есть пример кода, который ни одним макросом не напишете. VladislavS.(98 знак., 30.09.2022 17:37, ссылка)
- Вот так хорошая книга о С++ для эмбедерства и никак не напишется :/ - symbions(30.09.2022 23:35)
- С++ для эмбеддерства это всё равно что чернила для пятого класса.
Если вы понимаете как работает язык, то без всяких умных книжек не
будете в контроллерах применять контейнеры с эллокаторами, rtti,
исключения и виртуальные методы, а пустите в ход шаблоны, constexpr
и метапрограммирование. - VladislavS.(01.10.2022 01:05)
- Т.е. это "С с классами", ну и для извращенцев еще шаблоны и только-то? - POV(01.10.2022 01:08)
- Цэ++ для ымбеддерства — это Цэ. Готово, написано! - SciFi(30.09.2022 23:37)
- А можете на Цэ, к примеру, таблицу синусов во флэш сформировать? - VladislavS.(01.10.2022 01:41)
- Он ещё и кофе не умеет готовить. И это прекрасно! SciFi(65 знак., 01.10.2022 09:54)
- О чём я и говорил. Конфигураторы/скрипты/утилиты наше всё. Вернее
ваше. - VladislavS.(01.10.2022 10:03)
- А если программу на С компилировать как С++, получив при этом все
плюсы оптимизатора, это будет уже С++? - AlexBi(01.10.2022 14:33)
- Какие плюсы оптимизатора ожидаете на том же коде? Почему результат
должен стать другим? - VladislavS.(01.10.2022 14:36)
- const будет практически constexpr, плюс LTO - AlexBi(01.10.2022 14:48)
- LTO и на С коде работает. А const и constexpr это из разной оперы.
В тех местах где вместо constexpr можно написать const разницы в
результате не будет никакой. Единственную пользу, которую можно
поиметь от компилирования С-кода компилятором С++, это более
строгий контроль типов. Ну и синтаксические плюшки кое-где. - VladislavS.(01.10.2022 15:28)
- const применительно к функции не дает того эффекта как constexpr, и
оптимизация в итоге получается не такой эффективной. Правда я не
уверен что компилятор С++ будет рассматривать const как constexpr.
Хотя, const еще влияет на размещение (ОЗУ-ПЗУ), для контроллеров
это существенно. А как constexpr влияет? - AlexBi(01.10.2022 22:15)
- constexpr применительно к функции не гарантирует её вычисление в
компайлтайме. Только для переменной. Вот смотрите несколько
интересных примеров: VladislavS.(1362 знак., 01.10.2022 23:29, картинка, картинка)
- Ещё про const и размещение в памяти: VladislavS.(127 знак., 02.10.2022 00:44)
- constexpr применительно к функции не гарантирует её вычисление в
компайлтайме. Только для переменной. Вот смотрите несколько
интересных примеров: VladislavS.(1362 знак., 01.10.2022 23:29, картинка, картинка)
- const применительно к функции не дает того эффекта как constexpr, и
оптимизация в итоге получается не такой эффективной. Правда я не
уверен что компилятор С++ будет рассматривать const как constexpr.
Хотя, const еще влияет на размещение (ОЗУ-ПЗУ), для контроллеров
это существенно. А как constexpr влияет? - AlexBi(01.10.2022 22:15)
- LTO и на С коде работает. А const и constexpr это из разной оперы.
В тех местах где вместо constexpr можно написать const разницы в
результате не будет никакой. Единственную пользу, которую можно
поиметь от компилирования С-кода компилятором С++, это более
строгий контроль типов. Ну и синтаксические плюшки кое-где. - VladislavS.(01.10.2022 15:28)
- const будет практически constexpr, плюс LTO - AlexBi(01.10.2022 14:48)
- Какие плюсы оптимизатора ожидаете на том же коде? Почему результат
должен стать другим? - VladislavS.(01.10.2022 14:36)
- Unix way! - SciFi(01.10.2022 10:29)
- +100. Также как вредны пустые абстракции, вредны и попытки писать
все-все в одном семантическом поле. - Cкpипaчпророк(01.10.2022 12:04)
- Глупость несусветная. Вот в примере с таблицей синусов, если вам
нужно другое количество точек в таблице или другая точность/тип
данных, какие будут ваши действия? - VladislavS.(01.10.2022 14:10)
- таблица синусов - частный пример таблиц, заливаемых во флеш. их
особенность - достаточно простая вычисляемость. а что если таблица
зависит от внешних данных? а что если формулу расчёта хрен напишешь
в десяток строк? Mahagam(397 знак., 01.10.2022 15:16)
- Чувствуете разницу между сложной вычислительной задачей по
подготовке данных и написанием внешней программы на каждый чих? - VladislavS.(01.10.2022 15:35)
- и часто вы чихаете? ну, в смысле - часто вы там таблицы через
constexpr заполняете? не надо частный и достаточно редкий случай
приводить аки невероятное превосходство "а вы так не умеете". - Mahagam(01.10.2022 16:08)
- Не "вы так не умеете", а "возможности языка не позволяют". Как говорится, почувствуйте разницу. И да, формирование наборов константных данных достаточно распространённая задача: вышеупомянутая таблица синусов, таблицы перекодировки самые разные, табличная конвертация цветовых пространств, масштабирование и поворот шрифтов, USB дескриптопы и т.д. - VladislavS.(01.10.2022 21:59)
- Во-первых, чих далеко не каждый. Во-вторых, для ымбеддера безусловно полезно уметь встраивать в процесс сборки внешние скрипты, просто чтобы быть готовым ко всему. Так что этот аргумент скорее за скрипты. - SciFi(01.10.2022 15:37)
- и часто вы чихаете? ну, в смысле - часто вы там таблицы через
constexpr заполняете? не надо частный и достаточно редкий случай
приводить аки невероятное превосходство "а вы так не умеете". - Mahagam(01.10.2022 16:08)
- Чувствуете разницу между сложной вычислительной задачей по
подготовке данных и написанием внешней программы на каждый чих? - VladislavS.(01.10.2022 15:35)
- Мои действия будут дословно такие же - переписать программу
генерации таблицы. И код, который с таблицей работает. - Cкpипaчпророк(01.10.2022 15:08)
- То есть, надо держать под рукой ещё одну среду разработки? - VladislavS.(01.10.2022 15:37)
- В последнее время скриптами резал bmp с буквами на шрифты, собирал
прошивку из кусков с добавлением серийника и мак, обфурцировал и
зажимал html. Сомневаюсь, что тут мне помогли бы constexp. Зато на
хабре постоянно споры как на плюсах проще светляком помигать с
текстом проги на пару страниц. Может в мегапроектах это и
оправданно, но в небольших проектах это простыни малочитаемого
текста. - Andreas(01.10.2022 14:41)
- Выполнять сложные разовые задачи типа "резать bmp" с помощью
сложного кода нерационально, хотя и возможно. Какие трудности из
одного большого массива сделать несколько маленьких в constexpr?
Никаких. А вот потом эти буквы повернуть/масштабировать/и т.д. в
constexpr милое дело. Сложный код имеет смысл писать для часто
выполняемых задач. Дрыганье ногами/мигание светиком есть в 99%
проектов. Как в больших, так и в малых. Почему бы не сделать его
удобным и эффективным? Почему вас VladislavS.(472 знак., 01.10.2022 15:27)
- На голых сях это проще и нагляднее выходит. Gpio_set, gpio_reset, gpio_enable - просто пишется, просто используется, просто портируется на другое семейство. Возможно в чуть более сложные действиях, типа мигания, можно сделать удобнее абстракцию от железа, но на том же хабре почему-то это выливается тоже в многостраничный мрак. - Andreas(01.10.2022 16:13)
- Спагетти-данные как изысканная приправа к спагетти-коду :) - Cкpипaчпророк(01.10.2022 15:34)
- Я опять должен был не заметить? - VladislavS.(01.10.2022 15:39)
- Выполнять сложные разовые задачи типа "резать bmp" с помощью
сложного кода нерационально, хотя и возможно. Какие трудности из
одного большого массива сделать несколько маленьких в constexpr?
Никаких. А вот потом эти буквы повернуть/масштабировать/и т.д. в
constexpr милое дело. Сложный код имеет смысл писать для часто
выполняемых задач. Дрыганье ногами/мигание светиком есть в 99%
проектов. Как в больших, так и в малых. Почему бы не сделать его
удобным и эффективным? Почему вас VladislavS.(472 знак., 01.10.2022 15:27)
- Не волнуйтесь, справимся. Кстати, вы заметили, как подход
оппонентов вы назвали глупостью, а в сторону вашего подхода никаких
комков грязи не летело? - SciFi(01.10.2022 14:17)
- Ну как же, не заметил? Заметил. Вредными назвали. Причём
безапелляционно. Действительно, зачем какие-то доводы или примеры
приводить? Вбросим и авторитетом затопчем. Так не работает. - VladislavS.(01.10.2022 14:39)
- У меня к плюсам одна главная претензия: они огромно-монструозны, к
тому же продолжают расти не по дням, а по часам. Скоро в тему
плюсов смогут входить только те, кто готовы посвятить этой теме
бОльшую часть жизни. Ну или просто шибко заточенные под такую
деятельность. Это непрактично. Ну а про преимущества Unix way
можете просто погуглить, если интересно. - SciFi(01.10.2022 14:44)
- Это преувеличение. Прям таки больших и сложных расширений языка
было всего несколько. Раз в 3 года заглянуть "что там новенького"
не сложно. И каждое нововведение не просто с потолка сваливается, а
то что необходимо для работы и достаточно легко принимается. - VladislavS.(01.10.2022 16:06)
- "Всего несколько раз"? И это лишь "больших и сложных"? Вы блестяще подтвердили мой тезис :-) - SciFi(01.10.2022 16:10)
- Это преувеличение. Прям таки больших и сложных расширений языка
было всего несколько. Раз в 3 года заглянуть "что там новенького"
не сложно. И каждое нововведение не просто с потолка сваливается, а
то что необходимо для работы и достаточно легко принимается. - VladislavS.(01.10.2022 16:06)
- У меня к плюсам одна главная претензия: они огромно-монструозны, к
тому же продолжают расти не по дням, а по часам. Скоро в тему
плюсов смогут входить только те, кто готовы посвятить этой теме
бОльшую часть жизни. Ну или просто шибко заточенные под такую
деятельность. Это непрактично. Ну а про преимущества Unix way
можете просто погуглить, если интересно. - SciFi(01.10.2022 14:44)
- Ну как же, не заметил? Заметил. Вредными назвали. Причём
безапелляционно. Действительно, зачем какие-то доводы или примеры
приводить? Вбросим и авторитетом затопчем. Так не работает. - VladislavS.(01.10.2022 14:39)
- таблица синусов - частный пример таблиц, заливаемых во флеш. их
особенность - достаточно простая вычисляемость. а что если таблица
зависит от внешних данных? а что если формулу расчёта хрен напишешь
в десяток строк? Mahagam(397 знак., 01.10.2022 15:16)
- Глупость несусветная. Вот в примере с таблицей синусов, если вам
нужно другое количество точек в таблице или другая точность/тип
данных, какие будут ваши действия? - VladislavS.(01.10.2022 14:10)
- +100. Также как вредны пустые абстракции, вредны и попытки писать
все-все в одном семантическом поле. - Cкpипaчпророк(01.10.2022 12:04)
- А если программу на С компилировать как С++, получив при этом все
плюсы оптимизатора, это будет уже С++? - AlexBi(01.10.2022 14:33)
- О чём я и говорил. Конфигураторы/скрипты/утилиты наше всё. Вернее
ваше. - VladislavS.(01.10.2022 10:03)
- Вот с таких применений и можно начать. А я могу выступить
подопытных кроликом, который умеет в железки и в С, но о С++ только
по верхушкам. - Dingo(01.10.2022 03:53)
- Ну так всё
украденонаписано. Кто за православный выступает? VladislavS.(18 знак., 01.10.2022 06:33, ссылка)- Он это на этапе компиляции делает? от какой версии С++ нужен? - Dingo(01.10.2022 07:47)
- Конечно на этапе компиляции - массивы sin_table объявлены constexpr. С++17 хватит. - VladislavS.(01.10.2022 08:10)
- Он это на этапе компиляции делает? от какой версии С++ нужен? - Dingo(01.10.2022 07:47)
- Ну так всё
- Он ещё и кофе не умеет готовить. И это прекрасно! SciFi(65 знак., 01.10.2022 09:54)
- ;) symbions(16 знак., 01.10.2022 00:33)
- А можете на Цэ, к примеру, таблицу синусов во флэш сформировать? - VladislavS.(01.10.2022 01:41)
- С++ для эмбеддерства это всё равно что чернила для пятого класса.
Если вы понимаете как работает язык, то без всяких умных книжек не
будете в контроллерах применять контейнеры с эллокаторами, rtti,
исключения и виртуальные методы, а пустите в ход шаблоны, constexpr
и метапрограммирование. - VladislavS.(01.10.2022 01:05)
- Вот так хорошая книга о С++ для эмбедерства и никак не напишется :/ - symbions(30.09.2022 23:35)
- Статья, в отличии от пятничного трёпа, требует времени. На просто
почитать есть пример кода, который ни одним макросом не напишете. VladislavS.(98 знак., 30.09.2022 17:37, ссылка)
- Упадочный стиль! Декаданс! Характерными чертами декадентства обычно
считаются отход от общественности и отвращение к повседневной жизни
(taedium vitae), что проявляется в искусстве отрывом от реальности, поэтикой искусства для искусства, эстетизмом, модой на демонизм , преобладанием формы над содержанием, стремлением к внешним эффектам, стилизации и так далее. IBAH(1 знак., 30.09.2022 17:22, ссылка)
- ЧТД. Затопчут автритетом. - VladislavS.(30.09.2022 17:25)
- Пишите статью и ссылку сюда. "Ябпочитал" - Dingo(30.09.2022 17:22)
- Вы просто не умеете его готовить. Я бы мог бесконечно показывать
примеры, но это непробиваемо. Сразу авторитетно докажут, что у них
для этого есть конфигуратор/скрипт/утилита и это тру вэй.
Проходили. - VladislavS.(30.09.2022 17:01)
- Проблема с терминологией. Где заканчивается "Си с классами" и
начинаются плюсы? Имхо, подходы в плюсах(в Си с классами ) в
некотором роде конечно удобнее, но все прекрасно реализуется на
теплом-ламповом Си. А все эти метапрограммирования в топку. Что и
иллюстрирует картинка ТС . - IBAH(30.09.2022 16:55)
- Бывает и выпендрёжь, конечно, но не обязательно. Ну просто есть
кого-то рабочик код на плюсах, не переписывать же его для форума
специально. - VladislavS.(30.09.2022 16:49)