LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

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

Покажи мне пример серьёзной обработки данных. Можно на примере опенсорцного софта на C++. Потому что тот код, с которым мне приходилось работать, часто представлял собой дикую лапшу на «Си с классами».

Тривиальные случаи, когда нужно проитерироваться по массиву в C++ уже давно решаются посредством range for из C++11.

Решаются кем? Кода, использующего for с счётчиком, всё ещё вагоны.

Даже если мы говорим о 2% от общего числа, то все равно остается вопрос о том, а как доверять результатам нашей ручной оптимизации?

Это другой вопрос, который решается другими средствами. Здесь штука в том, что мы можем сократить количество кода, в котором потенциально может быть ошибка, со 100% до 2%. То есть, в 50 раз. И мы сможем гарантировать, что в 98% кода этой ошибки не будет.

Ну так тесты можно применять и сейчас, без навешивания проверок в реализации operator[].

Чувак, средняя C++-обезьяна понятия не имеет про разницу между .at() и []. Я не шучу. Куча народа пишут код вообще не приходя в сознание. И ты прекрасно об этом знаешь.

Мы тут можем бесконечно обсасывать, что мол настоящие программисты на C++ таких ошибок не совершают, но статистика по CVE показывает совершенно другое.

Исходная версия hateyoufeel, :

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

Покажи мне пример серьёзной обработки данных. Можно на примере опенсорцного софта на C++.

Тривиальные случаи, когда нужно проитерироваться по массиву в C++ уже давно решаются посредством range for из C++11.

Решаются кем? Кода, использующего for с счётчиком, всё ещё вагоны.

Даже если мы говорим о 2% от общего числа, то все равно остается вопрос о том, а как доверять результатам нашей ручной оптимизации?

Это другой вопрос, который решается другими средствами. Здесь штука в том, что мы можем сократить количество кода, в котором потенциально может быть ошибка, со 100% до 2%. То есть, в 50 раз. И мы сможем гарантировать, что в 98% кода этой ошибки не будет.

Ну так тесты можно применять и сейчас, без навешивания проверок в реализации operator[].

Чувак, средняя C++-обезьяна понятия не имеет про разницу между .at() и []. Я не шучу. Куча народа пишут код вообще не приходя в сознание. И ты прекрасно об этом знаешь.

Мы тут можем бесконечно обсасывать, что мол настоящие программисты на C++ таких ошибок не совершают, но статистика по CVE показывает совершенно другое.