Верить вам на слово? Судя по вашим рассуждениям, вы именно что занимаетесь закатыванием Солнца вручную. Прикрывая свою тупизну и ограниченность лозунгами про «а я не боюсь возни с битами и байтами, и системными вызовами.»
но это говно теперь увеличило вес стандартной библиотеки. и софт, который работал на эмбеддеде, вдруг может не влезть в память.
Да, да. Если кто-то в софте для ембеддеда нигде в коде не задействует std::filesystem ему все равно все это в исполнительный модуль влинкуют. Насильно.
ну ты бы ещё бейсик вспомнил! случайностей в профессиональном программировании не бывает. когда ты пишешь конфиги для автотулза - ты там пишешь все проверки. и уж разобраться с ошибкой компиляции взрослый программист в силах, я думаю :)
всё, я свалила играть на саксе. а то тут срачик нехилый, но бесполезный.
вот втащат ещё мусора в стандарт - и вдруг отвалится поддержка дешёвых роутеров. и юзеры будут возмущаться. но обратного пути уже не будет. тогда до них допрёт. а может, и нет.
деточка, тебе бы до моих самых простых софтин добраться - и то бы неплохо. сиди себе и гордись, учи дальше стандартную библиотеку наизусть и плачься на форуме, что не можешь без готовой реализации в маздае файл прочитать. давай, досвиданья.
Я тебе страшную вещь скажу. На роутере C++ не нужен от слова совсем. openwrt например за собой плюсы не тянет в базе. А если очень хочется - линкуешь статикой и пофигу, на всё что там напихали.
деточка, тебе бы до моих самых простых софтин добраться
Вы еще для пущего пафоса скажите, что это все в одно рыло запроектировали, запрограммировали, оттестировали, задокументировали, провели интеграционное тестирование, ПСИ, внедрение в опытную эксплутацию, внедрение в коммерцию. Не говоря уже про предпроектное обследование, эскизное и техническое проектирование.
Вот тогда я (да и не только я) просто офигеем от восхищения.
Но пока что вы производите впечатление рядового программиста, которому отводят фронт работ отсюда и до обеда, и он пашет на том, что дали и так, как научили.
я о другом, причем здесь ядро и ООП, дева с железных островов доказывает что либы в С++ не нужны, она все на апи накатает, а я ей объясняю что С++ это несколько другой подход, объектный, где мыслят не АПИ а объектами и основа там не АПИ вызов, а объект
вот втащат ещё мусора в стандарт - и вдруг отвалится поддержка дешёвых роутеров
хотите что то улучшать в С++ в ембеддед ? присоеденяетесь к групп SG14, WG21-SG14 – Making C++ better for games, embedded and financial developers, но от них проповзлов мало, хотя собираются они чаще других
я знаю о том как использовать плюсы на ембеддед, это деве с железных островов тяжко что то, и я ей говорю, что если хочет в стандартном с++ с стд чтото улучать, пусть присоеденяется к группе С++ которая занимается С++ ембеддед, пишут реализации, формируют пропозлы, улучшают С++ для ембеддед
Я лучше принесу несколько контейнеров с собой, чем буду таскать стл, гордо чтущий стандарт. Мне он просто весь не нужен. Не любитель я городить лишние шаблонные конструкции.
стл создавался не для того что бы покрыть все потребности, поэтому странно когда в отдельных случаях находятся люди которые на него катят бочку, да в отельных случаях можно обойтись от него или написать что то более оптимальное для какой то специфики, тот же фб написал под свои нужды свои реализации
Таким и он должен быть. Предоставлять минимум. Но сейчас в нём всё подряд. Да, шаблоны это круто, ими вертеть можно как угодно. Но не в стандартных библиотеках.
Порой мне кажется, что куда приятнее и проще писать код в Си-стиле, используя при этом возможности крестов. Некоторые с этим несогласны и пишут за куда дольше и больше и с множеством учтённых кейсов(при этом в реальности используется один). Зато не «Си с классами». Ну тоже метод самоутверждения.
понятие минимума - относительно, шаблонная магия для большей функциональности, кому что то не нравится он может переписать и юзать свое, кому то скорость лямбд не нравится, переписывают стд_функшионал и получают большую скорость в отдельных кейсах с некоторыми ограничениями итд
Там сейчас и не так много. Стандартные контейнеры, стандартные примитивы для управления памятью, немного для работы с ОС, немного математики. В целом, это то, что будет велосипедиться в каждом более или менее крупном проекте.
да ты охренел ваще, мне только вектор нужен. у меня крупный проект. уже 500 строк. В стандарте только вектор нужен, остальное пусть в либах будет, нехер тянуть.
Не сталкивался с таким. Обычно все начинается с кода в С-стиле, учитывающего только один кейс, затем кейсов становится больше и появляются иерархии классов, затем оказывается нужно щарить код между командами и появляются шаблоны и кодогенерация. Параллельно оказывается, что нужно быстро начать поддерживать несколько платформ и все костыли вокруг винапи и прочего позикса выпиливаются и юзается стл и буст. Но это мое видение, мой опыт.
Ну через-чур категорично. Не весь прям стл неприменим в эмбедед(ну или затруднено применим). Тут с умом надо. Отказываться от многих вкусностей из него тоже не стоит.
деточка, тебе бы до моих самых простых софтин добраться - и то бы неплохо.
Это говорит человек, который в соседней теме не мог целый трэд догнать, что конвертация из хостового порядка байт в сетевой и назад, реализованная на стандартном си, никак не зависит от порядка байт на хосте. И я не к тому, что я сомневаюсь в твоих компетенциях, я к тому, что ошибаются и тупят все, но столько пафоса и чсв мало кто источает...
Ну через-чур категорично. Не весь прям стл неприменим в эмбедед(ну или затруднено применим). Тут с умом надо. Отказываться от многих вкусностей из него тоже не стоит.
смотря что называть эмбеддедом. если у тебя линукс с мегабайтами флеша - используй на здоровье. Если микроконтроллер с сотней килобайт - stl ты туда не притащишь.
да хз. такие задачи я не решала. наверное, есть какое-то решение в бусте. это настолько редкая и частная задача, что вот вообще не волнует, можно ли её решать кроссплатформенно.
Работа с файлами настолько редкая, что никому ненужная. (с) Iron_Bug ★★ (08.09.2017 15:49:04)
Если микроконтроллер с сотней килобайт - stl ты туда не притащишь.
stl - это не только векторы и мапы. Те же tuple, во всяком случае реализацию которую я копал, сделана так, что никакого оверхэда по использованию памяти в ней нет. Сюда же можно отнести std::pair, std::variant, std::optional. unique_ptr имеет нулевой оверхэд (тут правда встает вопрос нужен ли нам хип на таких контроллерах, но это уже отдельная тема).
unique_ptr имеет нулевой оверхэд (тут правда встает вопрос нужен ли нам хип на таких контроллерах, но это уже отдельная тема).
unique_ptr может использоваться не только для работы с динамической памятью, но и для освобождения ресурсов в стиле RAII за счет кастомных deleter-ов. Например, для закрытия файлов, портов ввода-вывода и пр.