ViKo 1 10 декабря, 2019 Опубликовано 10 декабря, 2019 · Жалоба Мне не нужен экземпляр класса. Только функции из него. Однако, вряд ли получится. Скорее всего, сделаю несколько классов, под разные количества пинов. Цель моя - никаких лишних команд и объектов в результате компиляции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 10 декабря, 2019 Опубликовано 10 декабря, 2019 · Жалоба 26 minutes ago, ViKo said: Мне не нужен экземпляр класса. Только функции из него. Однако, вряд ли получится. Скорее всего, сделаю несколько классов, под разные количества пинов. Цель моя - никаких лишних команд и объектов в результате компиляции. эти шаблоны (если вдуматься - это очень продвинутые макросы) крайне плохо парсятся IDE, что логично (впрочем как и макросы). Так что если цель - получить в лоб от того, кто будет потом смотреть этот код (и самому себе тоже можно в лоб дать) - то она будет с таким усердием непременно достигнута. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 10 декабря, 2019 Опубликовано 10 декабря, 2019 · Жалоба Нет, стратегическая цель другая - избавиться от макросов #define, используя шаблоны. Макросы уже имею, без накладных расходов. Теперь перевожу на новые рельсы тот же состав. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 10 декабря, 2019 Опубликовано 10 декабря, 2019 · Жалоба Just now, ViKo said: Нет, стратегическая цель другая - избавиться от макросов #define, используя шаблоны. Макросы уже имею, без накладных расходов. Теперь перевожу на новые рельсы тот же состав. та я и говорю, теже макросы. Тоже замудрил на шаблонах много чего в прошлом проекте, не подумав. А проца всего 128 кил флеша было. Правда я достаточно объемные ф-ции параметризировал. В итоге всю флеш и подзабил однообразным кодом, отличающимся только типами. Лучше бы указателями на функции пользовался, или, как модно сейчас говорить, лямбдами. Ну да и ладно, все равно пора rust учить, а не на этом ущербном языке кодить, который уже Страуструп не знает толком, по его же признанию )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 10 декабря, 2019 Опубликовано 10 декабря, 2019 · Жалоба 3 hours ago, DASM said: как модно сейчас говорить, лямбдами. Не, лямбды - это просто анонимные функции, т.е. реализуемые в том же месте где и вызываются и по этому не требующие имени. А тут речь про функторы, они же объектные функции. Т.е. объекты с переопределенным оператором скобок и поэтому способные подставляться туда где ожидается просто указатель на функцию. Т.е. тут видятся не шаблоны, а как и говорил алгоритмы в виде функторов передаваемые как аргументы контейнерам пинов. Но факт в том что юзать С++ под embedded будет оверхедом и мисюзингом. А вот под десктоп C++ сейчас в самом тренде. Микрософт даже отказывается от мечты создать кроссплатформенный .NET с индифферентным к языку компилятором в пользу WinRT на Win10 с поддержкой всех фичей C++. Так что стало уже можно покинуть Delphi и перейти на C++ c VCL, STL, Boost и проч. Экосистема созрела. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 10 декабря, 2019 Опубликовано 10 декабря, 2019 · Жалоба 1 час назад, AlexandrY сказал: Но факт в том что юзать С++ под embedded будет оверхедом и мисюзингом. Вы в приличном месте, постарайтесь не выражаться - выглядит дешевым бахвальством. Я понял только первое слово, но даже в этом вы не правы. При грамотном использовании накладных расходов ни капли не больше, чем при использовании "голых" Сей, а удобств и преимуществ - море. Сдуру, конечно, можно и хрен сломать, но тут уж каждый сам себе злобный Буратина. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 6 hours ago, DASM said: эти шаблоны (если вдуматься - это очень продвинутые макросы) Гм... также можно сказать, что Си++ - это ооооочееееень продвинутый ассемблер, а поезд Сапсан - продвинутый паровоз, что не умаляет преимуществ Си++ и этого поезда. Цель - унизить шаблоны с Си++? 6 hours ago, DASM said: Так что если цель - получить в лоб от того, кто будет потом смотреть этот код Грамотное использование шаблонов упрощает программирование, ну, например, вы пишете всего одну функцию (в тексте), но она работает с бесконечным множеством типов данных (конечно, эти данные должны поддерживать общие операции, используемые в этой функции). Да, на машинном коде будет создано то количество функций, сколько типов данных вы используете. Ну так ведь это бы пришлось вручную делать. 6 hours ago, DASM said: Лучше бы указателями на функции Но не все же типы данных различаются, грубо говоря, длиной байт. Как быть, если функция должна складывать действительные и комплексные числа, например? Не вижу решения без шаблонов. 6 hours ago, DASM said: Ну да и ладно, все равно пора rust учить, а не на этом ущербном языке кодить А есть эффективные компиляторы с Rust в машинный код популярного семействва Cortex-Mx? И чем этот язык так хорош в сравнении с Си++? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 65 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 8 часов назад, AlexandrY сказал: Не, лямбды - это просто анонимные функции, т.е. реализуемые в том же месте где и вызываются и по этому не требующие имени. В С++ лямбды - это не функции вообще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 1 час назад, dxp сказал: В С++ лямбды - это не функции вообще. Стивен Прата вас не поддержал бы. Цитата Лямбда-функции Поначалу понятие лямбда-функции (или, как их еще называют, лямбда-выражения либо просто лямбда) может вам показаться не относящимся к одному из тех дополнений C++l l , которые призваны помочь начинающим программистам. Увидев, как в действительности выглядит лямбда-функция, вы сочтете, что подозрения только подтвердились - и вот пример: [&count] (int х) { count += (х % 13 == 0); } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 8 hours ago, Сергей Борщ said: Вы в приличном месте, постарайтесь не выражаться - выглядит дешевым бахвальством. Я понял только первое слово, но даже в этом вы не правы. При грамотном использовании накладных расходов ни капли не больше, чем при использовании "голых" Сей, а удобств и преимуществ - море. Сдуру, конечно, можно и хрен сломать, но тут уж каждый сам себе злобный Буратина. Вы даже не поняли в чем оверхед, и даже не попытались уточнить. О чем можно тогда говорить с вами? И при чем тут ваш хрен? Давайте метафоры поскромнее. А оверхед в количестве времени затраченном на продумывание сценариев которые никогда не будут использованы. Плюсы провоцируют к этому на каждом шагу. Те же шаблоны требуют обдумывания возможного поведения при всех возможных типах. А будут применены один или два. Т.е. оверхед оптимизации реюзинга. Хуже тормоза чем это даже трудно представить. Человек лучше ничего не сделает чем сделает то, что придется переделывать. Опять же универсальные шаблоны требуют документации - это еще один тормоз. Поскольку без центрального хранилища документации такие шаблоны просто забудут и снова будут создавать те же шаблоны. Т.е. оверхед в перспективе. Шаблоны хороши когда они сделаны другими, в виде поддерживаемых либ и с интегрированным хелпом в мощной IDE. На десктопах это есть. Там с плюсами все Ок. А в embedded нет. ООП вообще щас гнобят как изжившую себя концепцию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 7 минут назад, AlexandrY сказал: Те же шаблоны требуют обдумывания возможного поведения при всех возможных типах. Нет, не требуют - это личная инициатива конкретного программиста. Не нравится хрен - есть еще поговорка про дурака, которого заставляют Богу молиться. Поэтому огульно отказываться от всех преимуществ языка только потому, что вам кажутся неидеальными некоторые его части - по меньшей мере недальновидно. 13 минут назад, AlexandrY сказал: Т.е. оверхед оптимизации реюзинга. Не ругайтесь. 11 минут назад, AlexandrY сказал: ООП вообще щас гнобят как изжившую себя концепцию. А вам надо обязательно быть на острие моды. Собака лает, а караван идет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DASM 0 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 8 hours ago, haker_fox said: И чем этот язык так хорош в сравнении с Си++? Да просто хуже уже некуда (( Совершенно нечитабельные плюсы стали, особенно в последних стандартах. Не, я не спорю, если вариться в кровавом энтерпрайзе, митапить тимлидить монадить мокать стабить паттернматчить и очковтиратить - супер язык. А если драйвер для USB написать надо.. "да пошел ты в Ж, насяльник" 48 minutes ago, AlexandrY said: А оверхед в количестве времени затраченном на продумывание сценариев которые никогда не будут использованы. это точно 48 minutes ago, AlexandrY said: такие шаблоны просто забудут и снова будут создавать те же шаблоны. Т.е. оверхед в перспективе. +5 48 minutes ago, AlexandrY said: Шаблоны хороши когда они сделаны другими, в виде поддерживаемых либ +105 48 minutes ago, AlexandrY said: ООП вообще щас гнобят как изжившую себя концепцию. 30 летний развод и натягивание сов на глобусы Вся суть универсальных библиотек в одной картинке Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 24 minutes ago, Сергей Борщ said: А вам надо обязательно быть на острие моды. Собака лает, а караван идет... Вопрос только в том чей караван. И не идет, а ведет. И тогда картина полностью меняется. Тут мне понравился сегодняшний перевод на хабре - https://habr.com/ru/post/479642/ Думайте шире чем где ставить скобочки и точки. Язык программирования сам должен угадывать что вы хотите, а не вы должны угадывать что хочет язык программирования. Отсюда как бы намек что язык без IDE и фреймворка - вообще не современный язык. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 141 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 3 минуты назад, AlexandrY сказал: Язык программирования сам должен угадывать что вы хотите, К сожалению, пока еще не придумали языка, состоящего из одной-единственной кнопки "Хочу!". 4 минуты назад, AlexandrY сказал: а не вы должны угадывать что хочет язык программирования. Для этого достаточно знать этот язык на необходимом уровне. Пенять языку за недостаточность своих знаний - глупо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 11 декабря, 2019 Опубликовано 11 декабря, 2019 · Жалоба 1 hour ago, Сергей Борщ said: К сожалению, пока еще не придумали языка, состоящего из одной-единственной кнопки "Хочу!". Зато целую архитектуру придумали - SISC (Single Instruction Set Computer) с единственной командой - DWIM (Do what I mean) Вот только реализовать пока не получилось А вы тут о каких то 'языках' .... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться