1.5, п00by (?), 10:44, 23/05/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Из отчета:
> Если вы являетесь разработчиком, использующим библиотеки Boost, рекомендуется выполнить строгую проверку входных данных.
А что, можно не проверять?
| |
|
|
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 и там применяют фаззинг-тесты, вопрос качества этих тестов остается отарытым.
| |
|
|
|
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.
| |
|
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 с минимумом изменений. Как и большая часть остальный нововведений стандартной библиоткки.
| |
|
|
4.14, НяшМяш (ok), 11:40, 23/05/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Как раз поэтому - Boost, как внешнюю библиотеку, обновить проще, чем стд.
| |
|
5.20, Аноним (20), 12:02, 23/05/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Нет, проще не иметь дела с boost вообще там, где он не требуется. Тогда его и обновлять не надо, а только компилятор и станд. библиотеку, которые всё равно надо обновлять: для всех самых вкусных constexpr-фич (ranges-кхе-кхе) потребуется самая последняя версия языка с самыми последними экспериментальными фичами.
| |
|
|
7.114, Аноним (114), 18:29, 24/05/2024 [^] [^^] [^^^] [ответить] | +/– | Буст, или Ranges Буст - ну у него полно уникальных либ, опережающих по фичам и ... большой текст свёрнут, показать | |
|
|
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 (в любом из популярных компиляторов).
| |
|
|
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 [^] [^^] [^^^] [ответить]
| +/– |
> Си плюс-плюсники напряглись. Программируешь на Си плюс-плюс - вляпаешся в буст.
либо в кути
| |
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 [^] [^^] [^^^] [ответить]
| +/– |
>> Всегда лучше писать самому.
> Ну показывай уже самописанную прошивку для процессора, ядро, компилятор, юзерленд…
В ядре и прошивках сабжу совершенно точно не место.
| |
|
|
|
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 можно и в плоскоСишке ручками прикрутить. Но всё придётся ручками, ручками, а не компилятору поручать. Выразительность страдает.
| |
|
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 [^] [^^] [^^^] [ответить]
| +/– |
Да вроде фортран выбрасывать желающих нет. Именно свои задачи он хорошо выполняет.
| |
|
|
|
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 появится новый "революцинный" язык... Уже появились и не один.
| |
|
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.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 +/– |
с чего ты взял, что проверили каждую строчку? стат.анализатор показал несколько проблем, вот за них и уцепились, чтобы отработать оплаченное
| |
|
|