The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Результаты аудита безопасности библиотек Boost

23.05.2024 09:30

Фонд OSTIF (Open Source Technology Improvement Fund), созданный с целью усиления защищённости открытых проектов, опубликовал результаты аудита безопасности библиотек Boost, применяемых во многих проектах на языке C++. Аудит, который был проведён по заказу OSTIF и Amazon Web Services итальянской компанией Shielder, выявил 7 проблем, из которых одной присвоен средний уровень опасности, а четырём - низкий, две проблемы опубликованы в виде информационных замечаний.

Изученные в ходе аудита библиотеки:

  • Boost.Beast
  • Boost.DLL
  • Boost.Date_Time
  • Boost.Filesystem
  • Boost.GIL
  • Boost.Graph
  • Boost.JSON
  • Boost.Program_Options
  • Boost.Regex
  • Boost.String_Algo
  • Boost.URL
  • Boost.UUID

Выявленные проблемы:

  • Уязвимость в Boost.Beast, допускающая подстановку символов возврата каретки и перевода строки (CRLF) в HTTP-заголовки (может использоваться для расщепления заголовков). Проблеме присвоен средний уровень опасности.
  • Переполнение стека в библиотеке Boost.Regex при рекурсивном выполнении операций с несколькими элементами end_line в регулярном выражении.
  • Переполнение стека в библиотеке Boost.Regex при рекурсивном выполнении операций с несколькими группами захвата и объединения.
  • Переполнение стека в библиотеке Boost.Regex при рекурсивном выполнении операций с несколькими открытыми круглыми скобками в строке форматирования.
  • Переполнение стека в библиотеке Boost.Graph при рекурсивном выполнении операций с несколькими вложенными графами.
  • Assert-срабатывание в функции breadth_first_search из библиотеки Boost.Graph.
  • Неперехваченные исключения в Boost.DLL.

На основании полученной в ходе аудита информации команда разработчиков Boost уже устранила 4 проблемы и внесла 15 улучшений для расширения охвата кода и функций при проведении fuzzing-тестирования. Пока не исправлена проблема с расщеплением заголовков в Boost.Beast и не учтены информационные рекомендации.

  1. Главная ссылка к новости (https://ostif.org/boost-audit-...)
  2. OpenNews: Clang достиг уровня успешной пересборки комплекта C++-библиотек Boost
  3. OpenNews: Инициирован аудит безопасности проекта VeraCrypt
  4. OpenNews: Результаты аудита Tor Browser и компонентов инфраструктуры Tor
  5. OpenNews: Результаты второго аудита безопасности разработок проекта Tor
  6. OpenNews: Опубликованы результаты аудита безопасности кодовой базы LLVM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61233-boost
Ключевые слова: boost
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (98) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, п00by (?), 10:44, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Из отчета:
    > Если вы являетесь разработчиком, использующим библиотеки Boost, рекомендуется выполнить строгую проверку входных данных.

    А что, можно не проверять?

     
     
  • 2.6, Fracta1L (ok), 10:57, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +16 +/
    Можно, конечно. Кто тебя заставит?
     
     
  • 3.16, п00by (?), 11:47, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обычно в документации к функциям программных библиотек отражают необходимость верификации/очистки входных данных. Иначе будет беспорядок. Раньше были случаи, когда за корректность данных отвечали сами функции. Например, библиотеки ASA или SSP. Но это совершенно неудобно - анализировать множество кодов при некорректном завершении (можно, кстати, перепутать, какой код что означает). Считаю, что незачем нагружать функции несвойственными процедурами. Их цель - корректно отрабатывать алгоритмы обработки при правильных входных данных.
     
     
  • 4.38, Sw00p aka Jerom (?), 14:21, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Считаю, что незачем нагружать функции несвойственными процедурами. Их цель - корректно отрабатывать алгоритмы обработки при правильных входных данных.

    А о допустимых значениях аргументов функции где узнать? В документации? Отлично.
    Таким же макаром, зачем вообще нагружать аргументы этих функции типами? Функция работает с целыми числами, так и запишем в документации.

    пс: типы ведь проверяет компилятор (и кусок рантайма) :)

     
     
  • 5.113, srgazh (ok), 17:47, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да документация это хорошо. Но лучше провести тест как поведёт себя функция. А если функция ожидает сам тип? Тут можно написать статью про тестирование.... Ааа зачем вам тесты забыл, покажем типа работает, получим денег. Ве не с бюджетной организации?
     
     
  • 6.119, Sw00p aka Jerom (?), 00:18, 25/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ааа зачем вам тесты

    Ну да фаззинг тесты в приложении к документации, повторяю, типы зачем тогда?

    > Ве не с бюджетной организации?

    Нет, из "карманно-алэгархической" :)

     
     
  • 7.120, фаззер (?), 14:46, 25/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот кстати libtorrent использует boost и там применяют фаззинг-тесты, вопрос качества этих тестов остается отарытым.
     
     
  • 8.122, Sw00p aka Jerom (?), 15:47, 25/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    как и обычных тестов и всяких санитайзеров и мемликфайндеров Ну че готовы писат... текст свёрнут, показать
     
  • 4.44, Анон666 (?), 15:22, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Их цель - корректно отрабатывать алгоритмы обработки при правильных входных данных

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

     
     
  • 5.63, Аноним (63), 17:23, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Входные данные предлагается очищать перед их правомерным использованием и только затем предъявлять функциям обработки в адекватном виде.

    Не нужно здесь выкатывать свои измышления, а потом пафосно их опровергать.

     
     
  • 6.73, Sw00p aka Jerom (?), 18:02, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Не нужно здесь выкатывать свои измышления, а потом пафосно их опровергать.

    типы тогда зачем нужны?

     
  • 5.121, фаззер (?), 14:50, 25/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    мне на собесе такой тест давали.
    приложение не проверяет входные данные из полей и вам нужно разработать тесты чтобы в итоге работала сумма двух полей без ошибок. и назвать все возможные комбинации (то есть произнести). мосбиржа.
     
  • 4.50, Аноним (50), 15:51, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –4 +/
    A kak vi predlagaete togda postupat‘? Dva raza proveryat‘ bufer? Tak eto medlenno, bistree srazu parsit‘ i reshat‘, pravilniye dannie ili net.
     
     
  • 5.90, Карлос Сношайтилис (ok), 21:40, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если тебя держат в подвале, где нет воды и нормальной клавиатуры, моргни два раза
     
     
  • 6.91, Аноним (91), 22:20, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну что ты, чел просто слаку поставил
     
     
  • 7.97, xtotec (ok), 02:45, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И что - по ходу установки забыл как русские буквы выглядят?
     
  • 3.89, Аноним (89), 21:24, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Можно, конечно. Кто тебя заставит?

    Можно всё. Но потом прилетит обратка.

     
  • 2.124, aname (?), 10:47, 29/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если написано на расте, то да (тег "сарказм", надеюсь, ставить не надо?)
     

  • 1.7, Аноним (7), 10:57, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Переполнение стека в библиотеке Boost.Regex × 3

    Зачем нужен сабж при наличии std::regex, ctre и кучи специализированных библиотек регулярок?

     
     
  • 2.10, Аноним (10), 11:08, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Зачем нужен сабж при наличии std::regex

    std::regex взят прямо из boost с минимумом изменений. Как и большая часть остальный нововведений стандартной библиоткки.

     
     
  • 3.12, Аноним (12), 11:25, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему после этого их не выкинуть из современных версий Boost?
     
     
  • 4.14, НяшМяш (ok), 11:40, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Как раз поэтому - Boost, как внешнюю библиотеку, обновить проще, чем стд.
     
     
  • 5.20, Аноним (20), 12:02, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, проще не иметь дела с boost вообще там, где он не требуется. Тогда его и обновлять не надо, а только компилятор и станд. библиотеку, которые всё равно надо обновлять: для всех самых вкусных constexpr-фич (ranges-кхе-кхе) потребуется самая последняя версия языка с самыми последними экспериментальными фичами.
     
     
  • 6.94, penetrator (?), 23:35, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а где он требуется?
     
     
  • 7.114, Аноним (114), 18:29, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Буст, или Ranges Буст - ну у него полно уникальных либ, опережающих по фичам и ... большой текст свёрнут, показать
     
  • 5.21, Аноним (21), 12:03, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Проще ли?
     
  • 5.62, Да ну нахер (?), 17:14, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда зачем с самого начала было совать это в std?
     
  • 5.76, Аноним (76), 18:11, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Т.е. потому что это помойка из багов и гогнокода. Ну да, всё так.
     
  • 3.13, Аноним (12), 11:27, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Значит ли жто, что значительная часть реализаций std::regex страдает теми же проблемами?
     
  • 3.75, Аноним (76), 18:07, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну... нет, STL-ые варианты редко совместимы с бустовыми. regex в частности
     
  • 2.18, Аноним (18), 12:00, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для программ, написанных для <(C++11), например. И компиляторов, умеющих только 98 и 03.
     
     
  • 3.23, Аноним (20), 12:05, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А что сразу не на Си, зачем какие-то ++, на Си писать надо, как Линус завещал :)
     
  • 2.95, Аноним (95), 01:56, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем нужен сабж при наличии std::regex, ctre и кучи специализированных библиотек регулярок?

    Затем, что Boost.Regex быстрее std::regex (в любом из популярных компиляторов).

     
     
  • 3.115, Аноним (114), 18:30, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    ctre быстрее обоих.
     
  • 3.116, Аноним (114), 18:30, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    а PCRE вообще умеет в JIT
     

  • 1.8, Аноним (8), 10:57, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Почему не asio?
     
     
  • 2.11, Аноним (11), 11:17, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Почему не asio что?
     
     
  • 3.19, Аноним (18), 12:02, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Аноним имел ввиду, почему Boost.ASIO не проверяли?
     
     
  • 4.24, Аноним (24), 12:38, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не знаю
     
     
  • 5.33, Аноним (33), 13:59, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Не знаю

    а кто знает, если не эксперты опенет?

     

  • 1.9, Пряник (?), 11:03, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Свалка лишних зависимостей.
     
     
  • 2.47, Аноним (47), 15:26, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот, кстати, да: небезопасный код на расте следует искать в первую очередь именно в его стандартной библиотеке. Скидывайтесь на аудит.
     

  • 1.17, Аноним (20), 11:58, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Отличная вещь могла бы быть, но завязанность на остальные буст-либы header-o... большой текст свёрнут, показать
     
     
  • 2.80, Аноним (80), 19:15, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > генерить не для конкретного компилятора, а вообще все возможные варианты

    В том числе и те, которые ещё не изобретены? Положи машину времени где взял и шатай континуум своими конпеляциями!

     

  • 1.26, Аноним (26), 13:08, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Си плюс-плюсники напряглись. Программируешь на Си плюс-плюс - вляпаешся в буст.
     
     
  • 2.35, Аноним (33), 14:00, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Си плюс-плюсники напряглись. Программируешь на Си плюс-плюс - вляпаешся в буст.

    либо в кути

     
     
  • 3.51, Аноним (51), 15:55, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не обязательно, есть ещё рандомные гитхабовские поделки
     
  • 3.59, Аноним (18), 16:47, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Qt - вещь животворящая.
     
     
  • 4.67, nox. (?), 17:27, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не нравится? У оригинального Qt как минимум 3 форка.
     
  • 2.64, Аноним (-), 17:25, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хорошо, а на С какие либы?
     
  • 2.65, nox. (?), 17:25, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сделал немало проектов на С++, ни разу сабж не использовал. Всегда лучше писать самому.
     
     
  • 3.81, Аноним (80), 19:17, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Всегда лучше писать самому.

    Ну показывай уже самописанную прошивку для процессора, ядро, компилятор, юзерленд…

     
     
  • 4.86, nox. (?), 20:38, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    По вашему, сабж - это "прошивка для процессора, ядро, компилятор, юзерленд"? Не много ли?
     
  • 4.105, Аноним (-), 12:34, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> Всегда лучше писать самому.
    > Ну показывай уже самописанную прошивку для процессора, ядро, компилятор, юзерленд…

    В ядре и прошивках сабжу совершенно точно не место.

     
  • 3.83, Аноним (83), 20:32, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Наверное, и ввод-вывод сам писал?
     
     
  • 4.85, nox. (?), 20:37, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это - да. И весьма оригинально, кстати.
     
     
  • 5.92, Аноним (91), 22:21, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В этом комментарии не хватает ссылки на житхаб
     
     
  • 6.107, InuYasha (??), 14:09, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    нормальные люди на жидхабе не сидят.
     
     
  • 7.117, Аноним (114), 18:33, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    порядочные люди этнофолизмы не используют.
     
  • 5.101, Аноним (-), 10:35, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну то поделитесь опытом. Давайте уже ссылку на проект
     

  • 1.27, Аноним (27), 13:16, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Буст не нужен. Почти любая ошибка выдает сообщение на несколько экранов, без бутылки не разобрать про что. Средство должно помогать в работе а не доводить до истерики
     
     
  • 2.28, Аноним (28), 13:28, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –9 +/
    >>> Почти любая ошибка выдает сообщение на несколько экранов, без бутылки не разобрать про что. <<<

    просто переходите на Rust

     
     
  • 3.36, Аноним (33), 14:01, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >>>> Почти любая ошибка выдает сообщение на несколько экранов, без бутылки не разобрать про что. <<<
    > просто переходите на Rust

    когда в раст завезут ООП - плюсы можно закапывать смело

     
     
  • 4.37, Аноним (28), 14:14, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> когда в раст завезут ООП <<<

    ООП не панацея: при композиции проблем меньше чем при наследовании, так что используйте композицию + трейты и будет вам счастье!

     
     
  • 5.45, Анон666 (?), 15:24, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ой, измученные ООП мозги исправить почти невозможно. Это как религия.
     
     
  • 6.98, fuggy (ok), 03:19, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Негибкое мышление. Так нужно изучать другие технологии, не всё в одном ООП сидеть.
     
  • 5.58, Аноним (18), 16:41, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А как в этой композиции обеспечить полиморфизм? Я понимаю, что vtable можно и в плоскоСишке ручками прикрутить. Но всё придётся ручками, ручками, а не компилятору поручать. Выразительность страдает.
     
     
  • 6.72, Аноним (28), 17:57, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    не понял вопрос, что вам нужно! для начала гляньте это и далее: https://doc.rust-lang.org/book/ch17-01-what-is-oo.html
     
  • 4.39, Аноним (28), 14:21, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >>> плюсы можно закапывать смело <<<

    Плюсы никогда не умрут, - и это факт! Раст это просто достойная альтернатива которая даёт куда больше гарантий безопастновсти чем С++! Точно также как когда-то появился С++ и он давал больше гарантий безопастности чем С! Так что глупо игнорировать эту альтернативу!

     
     
  • 5.46, Анон666 (?), 15:25, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Плюсы никогда не умрут, - и это факт

    Будут как фортран сейчас - выбросить хочется, а переписать лень.

     
     
  • 6.118, Аноним (83), 19:36, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да вроде фортран выбрасывать желающих нет. Именно свои задачи он хорошо выполняет.
     
  • 4.40, 12yoexpert (ok), 14:25, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    шаблоны с синтаксисом раст? лучше сразу застрелиться
     
  • 3.68, nox. (?), 17:28, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Rust в Qt уже поддерживается? Нет? Как будет, проинформируйте.
     
     
  • 4.71, Аноним (28), 17:45, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>>  Rust в Qt уже поддерживается? Нет? Как будет, проинформируйте. <<<

    Cкажем Rust появился в 2015, а С++ в 1985, - вы ведь понимаете что у С++ фора в 30 лет; а теперь представьте какая экосистема будет у Раста через эти самые 30 лет; так что будьте реалистом - всему своё время!

     
     
  • 5.84, nox. (?), 20:35, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Короче, "Либо падишах помрет, либо ишак сдохнет" (с) Ходжа Насреддин. Я точно не доживу.
     
  • 5.88, Аноним (18), 21:04, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не через 30, а может через 10 появится новый "революцинный" язык... Уже появились и не один.
     
     
  • 6.102, Аноним (102), 10:45, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу пишите - 20 лет. Чтобы денег дали, а проверять не пришли.
     
  • 4.93, Аноним (91), 22:30, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А кто вообще кутэ поддерживает нормально кроме сишки? Только не надо про pyqt, на нем живых проектов целых полтора.
     
  • 2.30, Аноним (28), 13:33, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>> Средство должно помогать в работе а не доводить до истерики  <<<

    Именно поэтому новичкам (да и не только новичкам) нравится Rust где компилятор это как чувак который сидит с тобой за одним столом и говорит тебе что не так, где именно и как это исправить: С++ до такого как до луны!

     
     
  • 3.54, eugene_martein (ok), 16:12, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В чём проблема прописать ключи компиляции -Wall -Wextra -Wpedantic -Werror и поверх clang-tidy c включённым core guidelines и bugprone-* ? Всё будет ещё круче, чем в Rust, но ты не умеешь в это.
     
     
  • 4.57, Аноним (-), 16:40, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема в том, что всё что ты предлагаешь, это куча эвристик, которые ничего не... большой текст свёрнут, показать
     
  • 4.70, Аноним (28), 17:35, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >>> -Wall -Wextra -Wpedantic -Werror и поверх clang-tidy c включённым core guidelines <<<

    в расте лайфтаймы и борроу чекер всё разрулят - аналога этому в С++ просто нет - (некоторые конечно пытаются прикрутить сбоку бантик) - но пока это всё не то!

     
  • 4.82, Аноним (80), 19:26, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Раз проблемы нет, то объясни тогда, почему в наблюдаемой реальности мало кто так делает? Тем более, если таким образом «всё будет ещё круче»?
     
  • 4.112, наука_кандидатов (?), 17:05, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Сам-то давно так делал? С включенным clang-tidy в принципе невозможно что либо скомпилировать. Орёт ошибками на всё подряд, делаешь по-другому, всё равно орёт.
     
  • 2.34, Аноним (18), 14:00, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тут проблема не в конкретной библиотеке шаблонов. STL тоже хорошо вываливает тонны на экран. Проблема в реализации шаблонной подсистемы в C++. Подозреваю, что реализовано отчасти всё на том же унаследованном старом "добром" препроцессоре.
     
     
  • 3.55, sabudilovskiy (?), 16:14, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Тут проблема не в конкретной библиотеке шаблонов. STL тоже хорошо вываливает тонны
    > на экран. Проблема в реализации шаблонной подсистемы в C++. Подозреваю, что
    > реализовано отчасти всё на том же унаследованном старом "добром" препроцессоре.

    Ложь.

    auto SomeFoo(auto x, auto y){
        return x * y + (x + y);
    }

    Препроцессор ничего не знает о языке. Система шаблонов построена на статическом анализе и гигантском полиморфизме.

     
     
  • 4.56, Аноним (18), 16:32, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я сказал предполагаю, а не утверждаю. Но то, что и STL, мягко говоря, не отличается внятностью сообщений о проблемах, это точно.
     
  • 4.60, Аноним (-), 16:50, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это именно что препроцессор C , например, не может проверить эту функцию, наск... большой текст свёрнут, показать
     
  • 2.52, Аноним (51), 16:01, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > без бутылки не разобрать про что

    Поздравляем, вы постигли тонкости програмизма

     
  • 2.66, ZloySergant (ok), 17:25, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Буст не нужен. Почти любая ошибка выдает сообщение на несколько экранов, без бутылки не разобрать про что. Средство должно помогать в работе а не доводить до истерики

    Думать головой не пробовал?

     
  • 2.69, nox. (?), 17:29, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Буст не нужен.

    У нас говорили: "Не нравится - сделай лучше".

     
     
  • 3.99, Аноним (99), 09:47, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там ещё говорили: "Ешь что дают" и просовывали тебе это на лопате.
     
  • 2.77, Аноним (76), 18:13, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Будто в остальных плюcах как-то иначе. Когда наконец таки везде прикрутят концепты, то мб станет лучше
     
     
  • 3.79, Аноним (-), 19:12, 23/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >Когда наконец таки везде прикрутят концепты, то мб станет лучше

    Ага, "потерпите немножко". Вот-вот станет лучше, вы только маленько потерпите.

     
     
  • 4.100, Аноним (99), 09:48, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну все пойдем на руст, много уже на нём написали?
     
  • 4.109, Аноним (76), 14:37, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Оно и так стало лучше уже сейчас, если сравнивать с комиляторами 10-15 летней давности. Но этого мало и процесс улучшения плюсов как раз последние лет 15 идёт достаточно бодро
     

  • 1.108, InuYasha (??), 14:17, 24/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не пользуюсь, но уважаю.
    Это настолько гигантский и сложный проект, что это найденный пяток проблем - просто смешно ) Я реально в шоке от такого высокого качества кода.
     
     
  • 2.110, Аноним (110), 15:17, 24/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    с чего ты взял, что проверили каждую строчку? стат.анализатор показал несколько проблем, вот за них и уцепились, чтобы отработать оплаченное
     
     
  • 3.123, InuYasha (??), 10:37, 29/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    с чего ты взял, что я считаю что проверили каждую строчку?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру