LINUX.ORG.RU
Ответ на: комментарий от andreyu

Я видел это. Неожиданно кривой документ, большая часть функций не может быть syscall в принципе. Ну какой fprintf syscall?

vodz ★★★★★
()
Ответ на: комментарий от Dudraug

Окей, в std::pair, std::variant, std::optional - верю. Возможно даже в *_pointer если динамическая память в контроллере таки используется.

другой вопрос насколько stl в таком виде способен ужаться?

Dark_SavanT ★★★★★
()

до шарпа этому говну как до луны. кресты это дохлая кляча, развешанная бубенцами. проще пристрелить..

anonymous
()
Ответ на: комментарий от anonymous

шарпу да, до плюсов бежать и прыгать, и оставаться на дне

anonymous
()
Ответ на: комментарий от BRE

Там почти всё неудачное у них. Хотя обсуждают десятилетиями.

dzidzitop ★★
()
Ответ на: комментарий от eao197

Вот если модули совместят с чем-то вроде Cargo/Maven/RubyGems/Cabal, тогда да, тогда ситуация может поменяться принципиально.

Статические и динамические библиотеки уже изобрели.

А шаблоны компилируются разными компиляторами с разными опциями компиляции. Так что такого репозитория не будет. Разве что самодельный внутрипроектный на nfs + symbolic links

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

Никто не мешает писать на C++98 или нетормозящем подмножестве С++11

dzidzitop ★★
()
Ответ на: комментарий от anonymous

ты бы ещё про опытного жаваскриптера рассказал.

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

затем, что эта стандартная библиотека классическое вырвиглазное ниочём. А там хоть что-то появляется из повседневно нужного. Насколько оно там юзабельное - не знаю. Обычно говно какое-то продают под видом расширения стандартной библиотеки.

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

Хреново они там работают. Особенно для C++ с исключениями. Но написать что-то, если нужен результат, можно.

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

а по факту, если хочешь скорости и управления памятью, придётся от STL отказаться.

А по факту, если хочешь скорости и управления памятью, то для начала придётся научиться пользоваться STL, а потом, при необходимости, отказываться.

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

и там тоже не было try-catch'ей (может, был один, и то вот не припоминаю). в серьёзных проектах это не нужно. аварийные ситуации там означают неправильно написанный софт.

И конструкторов там тоже, вероятно не было. Ибо конструкторы классов без исключений не в состоянии сообщить об ошибке. Как и многие другие фичи прямо завязаны на использование исключений.

dzidzitop ★★
()
Ответ на: комментарий от eao197

std::string

для интероперабильности между модулями проекта

Очень сомнительное сочетание. Обычно означающее бесконечные копирования по поводу и без. В плюсах никогда не будет нормального строкового типа из-за проклятия совместимости с C.

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

вангую 5 UB на 100 строчек кода в этих «простых софтинах»

dzidzitop ★★
()
Ответ на: комментарий от anonymous

С++ к ООП прямого отношения не имеет. А ООП, в свою очередь, не имеет прямого отношения к кроссплатформенности.

dzidzitop ★★
()
Ответ на: комментарий от Dark_SavanT

Жизнь от этого заиграет новыми красками? Сомнительно. У меня тоже есть свой optional, к слову. Только это не самая большая проблема во время работы с C++

dzidzitop ★★
()
Ответ на: комментарий от Dark_SavanT

Без эксепшенов плюсы неюзабельные в принципе. Разве что если аварийный вызов exit(100500) вместо исключения является приемлемым.

dzidzitop ★★
()
Ответ на: комментарий от Dark_SavanT

Почему нельзя притащить, например, <algorithm> из STL в микроконтроллер?

dzidzitop ★★
()
Ответ на: комментарий от andreyu

Даже на commodore 64 были файлы записей и программ. Директорий, правда, наверное, не было.

dzidzitop ★★
()
Ответ на: комментарий от utf8nowhere

наверное, потому что move-консктрукторы и move- operator= увеличивают перформанс, а не уменьшают.

dzidzitop ★★
()
Ответ на: комментарий от anonymous

Я хз что там за код. Там, где мне было нужно, лямбды инлайнились в тот же асм-код, что был бы и при ручном инлайнинге с копипастой кода. А там, где не инлайнились - или с моего позволения или что-то придумывал.

В любом случае - если выдавать человеко-строки кода за деньги, то можно считать лямбды очень лёгким сахарком.

dzidzitop ★★
()
Ответ на: комментарий от Dudraug

unique_ptr имеет нулевой оверхэд

Лично наблюдал пару лишних манипуляций с регистрами при наличии unique_ptr по сравнению с голым указателем.

dzidzitop ★★
()
Ответ на: комментарий от eao197

Не может, пока деструкторы не перестануть быть noexcept по умолчанию.

dzidzitop ★★
()
Последнее исправление: dzidzitop (всего исправлений: 1)
Ответ на: комментарий от dzidzitop

в финансовых сферах, том же HFT, скорость это деньги. К томже в асм оно никогда не инлайнилось, оно оберткой вокруг std::functional стоит. А functional это отельный делегат

anonymous
()
Ответ на: комментарий от anonymous

Если имеется ввиду std::function из заголовка <functional> то к лямбдам он не имеет отношения. Да и проблема посмотреть что там компилятор нагенерил небольшая.

Из типичных проблем - при передаче по ссылке целочисленного литерала может появляться фантомная переменная (в машинных кодах) на стеке, чтобы обеспечить эту ссылку содержимым. Редко, если лямбда развесистая и/или используется в нескольких местах, она просто не инлайнится.

В общем, зная нутро конкретного компилятора, писать под него подходящий код можно.

dzidzitop ★★
()
Ответ на: комментарий от Iron_Bug

популярности не приобрели, особенно лямбды. ибо нафиг не нужны

Криокамера у ней явно сломалась, несите новую!

slackwarrior ★★★★★
()
Ответ на: комментарий от Iron_Bug

время генерации вообще никого ни...(волнует).

Ага щас. Вы просто не видали проектов где это существенно и дежурная отмаза «компиляется!» не работает :)

slackwarrior ★★★★★
()
Ответ на: комментарий от Iron_Bug

я вообще не понимаю этих страдальцев. когда компилишь даже очень большой проект, он не пересобирается весь (конечно, если всё правильно поделено на модули и библиотеки и в хэдерах нет мусора).

при разработке компиляция занимает доли секунды

в сферическом вакууме, где не надо зависеть от людей на другой стороне шарика и релизиться «быстро и часто» с CI/DI пайплайнами в облаке, настройкой которого ты вообще ни разу не управляешь (а там довольно часто делается накат «с нуля» с пересборкой зависимостей под N-платформ и M-конфигураций :)

я вообще не понимаю

Именно что весь и сразу — потому что опять сейлзы продали конфу под платформу которая «не поддерживается уже пару лет» и нужно ее заново поднять («и не вздумайте сказать, что мы компиляем, мы конфигурируем»). Ну и опять это вот «непонимание» — тупо отсутствие реального опыта когда этот твой «один раз» в случае интеграционных проектов по «перезапуску» и прочему «ребрендингу» под зонтиком корпоративных слияний повторяется регулярно — потому что ранее принятые проектные решения про «нафиг не нужно» и «с мощной оптимизацией» под одни условия делались такими же «экспертами» с горизонтом планирования «работа-дом» (а условия-то все время меняются — сегментация рынка жы есть :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от dzidzitop

Получается, шаблоны нужно использовать везде.

Нет, не получается.

Ну или обмазываться всяким убожеством типа printf

Это такая мода ругать printf?

andreyu ★★★★★
()
Ответ на: комментарий от Iron_Bug

образчик моего кода закрыт

образчики таких «закрытых кодов» гоняют с аутсорца на аутсорц из одной галеры в другую (выкладывая целыми кусками на говнокод.ру :) чисто поржать с СПГСа посонов, «чиво делает этот код» и «что курил кто это написал»: в одной галере демпинганули и написали наколеночный «ПОЦ» («пруф оф концепт»), который без допилок ушел в продакшен, в другой его что, переписывают и доводят до ума? Ага, щас! Впиливают новые костыли и подпорки, чтоб не падал в неожиданных местах, где забыли что строку формата недостаточно «проверить на длину», а длину массива не обязательно указывать волшебными числами в шести местах из-за которых в «known issues» указано что-то вроде «для того чтоб использовать кастомный код 10000 нужно добавить в конфиг еще 10001 и никогда не использовать!» :)

И вот не надо рассказывать про мегасофт банковских транзакций и т.д. (через мои руки прошло много таких «поделок», которые пришлось переписывать чтоб они не стреляли себе в ногу от недокументированных особенностей мозга своих авторов, дрочащих в присядку на «мегаоптимизации», которыми чаще оправдывалось банальное срезание углов перед релизом — отсутствие проверок не только там где по заявлениям авторов «снижается производителтность!», «кококо оверхед!!!» — заявления ими делались обычно без пруфов с выдачи профайлера (в порядке троллинга мы его добавляем в CI), посему были проигнорированы — но и там, где это попросту необходимо, чтобы программа была таки fault tolerant, не говоря уж о fail safe не только в маркетинговой макулатуре предыдущих подрядчиков).

slackwarrior ★★★★★
()
Ответ на: комментарий от Iron_Bug

серверные приложения не шарятся по винту. они получают конфиг

Ыыыы. По сети. Потом админ заказчика хочет этот конфиг на месте посмотреть и пофиксить, а не пока сапорт «обработает тикет».

всё прописано жёстко

Ага. В конфиге. Или в маппинге. Скачать с билд-облака пару десятков свежих либ с функционалом (.so? .dll? бандлы?), поднять на сервере M-цать... Но M-цать мало — лучше N-цать инстансов сервисов и связать их в нужную «оркестровку» с поддержкой кластера/балансировкой нагрузки и т.д. То же самое «и быстра блеать!» в случае сбоя в течение «опердня» — а это значит что? Персистентность и файлы, по которым придется шариться при перезагрузке, чтоб продолжить с того места, где «что-то пошло не так». При этом оно не должно впадать в ступор от того, что в этой конфе стало не «демоном», а «службой» с инсталлером не в .run, а в .msi (но с поддержкой self-хостинга, выдачей выхлопа куда указано) и логи персистентных транзакций надо слить ни разу не в syslog, а в заботливо подставленный SPLUNK заказчика («то есть как... файлами?»), IBM MQ («Штоа, пароли 6 символов?»), и... куда скажут ваще — но не внутрь бандла Mac Os X с исполняемым файлом, как это на моей памяти сделали «независящие от кроссплатформенности» велосипедисты, не увидевшие разницы между «сортами юниксов».

А еще у серверных программ бывают результаты их работы, которые тоже надо непременно сохранить — историческая это маркетдата для продажи писателям hft-роботов или данные о сделках за фискальный период, или тупо сырые данные с хреналиона датчиков, которые порождают «бигдату» быстрее, чем топовые числодробилки успевают ее обработать.

slackwarrior ★★★★★
()
Ответ на: комментарий от Iron_Bug

в серьёзных проектах это не нужно. аварийные ситуации там означают неправильно написанный софт.

В серьезных проектах аварийные ситуации означают тазик с цементом для пейсателя, материальный ущерб и человеческие жертвы. Не надо рассказывать про «серьезный-серьезный биллинг ОПСОСа» и прочую деньгощитательную муйню. Там как раз почем зря срезают углы, а не «пишут правильный софт».

slackwarrior ★★★★★
()
Ответ на: комментарий от dzidzitop

нет не имеется ввиду, вы вообще знаете во что компилятор превращает лямбды ? я вижу что не знаете, нет смысла продолжать разговор.

anonymous
()
Ответ на: комментарий от dzidzitop

свободно владеющий английским

it's depends

ясно-понятно

anonymous
()
Ответ на: комментарий от dzidzitop

О, еще один маргинал подтянулся со своим железобетонным мнением.

Так что такого репозитория не будет.

Продолжайте радовать нас своими закидонами, а мы посмотрим, как будут развиваться Conan, Hunter, CPPAN, Vcpkg и др.

eao197 ★★★★★
()
Ответ на: комментарий от anonymous

ABI здесь при чем? Как и идея о том, что пакеты должны распространяться в уже скомпилированном и пригодном для линковке виде?

eao197 ★★★★★
()
Ответ на: комментарий от dzidzitop

В плюсах никогда не будет нормального строкового типа

А «нормальный строковый тип» — он какой?

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.