LINUX.ORG.RU

Типичные ошибки C++


0

0

Martin Michlmayr пересобрал 6200 пакетов Debian свежим компилятором GCC 4.1. При этом было обнаружено более 500 новых багов, из которых 2/3 приходятся на типичные ошибки с С++-коде.

Подробный отчёт: http://lists.debian.org/debian-devel/...

>>> Памятка кодеру

anonymous

Проверено: Shaman007 ()

Спасибо, почитал. Весьма полезная информация.

ero-sennin ★★
()

>При этом было обнаружено более 500 новых багов, из которых 2/3 приходятся на типичные ошибки с С++-коде.

Фантаст мля. Читал свою же ссылку по диагонали да еще пунктиром.

anonymous
()

У Microsoft совместимость со старыми компиляторами практически абсолютная. Тока красноглазые сначала жрут "public: foo::foo();" за милую душу, а через двадцать лет у них начинает что-то зудеть и чесаться и они объявляют данную конструкцию вне закона. Очень мило.

lenin
()

Надо ли говорить, что из-за этого дерьма ни одна программа десятилетней и более давности у пингвинаф не собирается ?

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

> У Microsoft совместимость со старыми компиляторами практически абсолютная.

она их и погубит в конце концов

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

> У Microsoft совместимость со старыми компиляторами практически абсолютная.

А вот тут Вы батенька непгавы, непгавы (с лукавым прищуром) Слушай чудо, лежало б ты в мавзолее и не воняло. А то тебя в следующий раз не забальзамируют (заархивируют) и скомпилить не смогут (ленин жив)

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

2 lenin # (*) (05.04.2006 12:55:48)
ленин, ф мафзалей! могу спорить, тебе не доводилось переходить с MSVC 4.0 на MSVC 6.0.

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

>Надо ли говорить, что из-за этого дерьма ни одна программа десятилетней и более давности у пингвинаф не собирается ?

Закрой крышку гроба, вождь! *Правильно* написанная программа соберется в любом случае. Если программер пишет *неправильную* конструкцию только потому, что компилятор позволяет это потом собрать, то грош цена этому программеру.

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

1. Языки развиваются. Компиляторы развиваются вместе с ними. Компилятор, поддеживающий совместимость со стандартом 20-летней давности (и всеми промежуточными стандартами) - bloatware.

2. Если язык (или компилятор) развивается в сторону ужесточения проверки синтаксических конструкций - ПРАВИЛЬНО, что он ругается на криво написанный код.

ЗЫ Я не помню - я говорил, что плюсы гадость?;)

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

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

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

>>Какой бред программировать на С++, на на Си.

>Я не понял смысла этой фразы

Это мозговая бомба. Диверсия виндузятников. Вдумываться опасно.

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

>У Microsoft совместимость со старыми компиляторами практически абсолютная. Тока красноглазые сначала жрут "public: foo::foo();" за милую душу, а через двадцать лет у них начинает что-то зудеть и чесаться и они объявляют данную конструкцию вне закона. Очень мило.

Вы Ильич неправы. Обычно говорят о совместимости компилятора со стандартом. Совместимость компилятора с компилятором это, простите, тафтология.

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

А ну-ка быстро - в мавзолей и баиньки! мумие сушеное...

anonymous
()

> Martin Michlmayr пересобрал 6200 пакетов Debian

Зопесал: "Martin Michlmayr - пробитый гентушник"
:)

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

Совместимость МАЙКРОСОФТОВСЬКОГО компилятора с МАЙКРОСОФТОВСЬКИМ компилятором это, увы, не тафтология: m$vc-компилер версии X соответствует m$vc-стандарту версии X, m$vc-компилер версии Y соответствует m$vc-стандарту версии Y. Если m$vc-стандарт версии X НЕ соответствует m$vc-стандарту версии Y (как правило), то и m$vc-компилер версии X не совместим с m$vc-компилером версии Y (хотя каждый из них идеально соответствует своему стандарту) %)

Или имелось в виду соответствие m$vc-стандарта ISO/ANSI стандарту? Так этого за жизни гейтса не будет. Ну разве что код вида #ifdef __M$__ ... #else ... #endif считать совместимым :)

ЗЫ: С++ в гроб, и два крестика на могилу! С и ниипет!

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

> *Правильно* написанная программа соберется в любом случае. Если программер пишет *неправильную* конструкцию только потому, что компилятор позволяет это потом собрать, то грош цена этому программеру.

Дружно объявляем ядро Linux неправильное программой :)

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

> ЗЫ: С++ в гроб, и два крестика на могилу! С и ниипет!

Да, си - неплохой язык. ;-)

atrus ★★★★★
()

Ээээ, стоп!!! А жцц 4.1 чем собирался-то??? Если жцц 3.х (который согласно статье еще пропускал ошибки), то он мог пропустить ошибку которая по ошибке не пропускает ошибки которые не очень ошибки или совсем не ошибки %)))

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

Ty vidimimo gcc nikogda ne kompilil. gcc sam syebya soboi zhe i sobirayet, yumorist hrenov

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

>> Ээээ, стоп!!! А жцц 4.1 чем собирался-то???

>man bootstrap

No manual entry for bootstrap

%)

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

> А жцц 4.1 чем собирался-то??? Если жцц 3.х (который согласно статье еще пропускал ошибки), то он мог пропустить ошибку которая по ошибке не пропускает ошибки которые не очень ошибки или совсем не ошибки %)))

Самим собой он собирался. Сначала собрали 4.1 какой-то другой версией (неважно какой), потом полученным бинариком собрали 4.1 еще раз.

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

> Если программер пишет *неправильную* конструкцию только потому, что компилятор позволяет это потом собрать, то грош цена этому программеру.

А тогда весь пингвиникс написан кретинами. Попробуй собрать что-нить десятилетней давности. Выложить ?

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

> тебе не доводилось переходить с MSVC 4.0 на MSVC 6.0.

Доводилось. Изменеия минимальны и связаны с пересмотром стандартов.

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

> Я, тебе Lenin, лично уже 1 раз показывал к чему приводит твое умелое газирование луж.

с иходниками не выйдет.

lenin
()

Хороший кстати формат документа.

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

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

>то он мог пропустить ошибку которая по ошибке не пропускает ошибки которые не очень ошибки или совсем не ошибки %)))

Из хаотических систем можно построить упорядоченную. Посмотри, например, на себя или окружающих :D

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

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

Си/Си++ кучи реализаций - это понятно.

Java с некоторых пор, как понимаю.

Forth в некоторых реализациях, типа SP-Forth.

Ещё - ?

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

>> тебе не доводилось переходить с MSVC 4.0 на MSVC 6.0.

>Доводилось. Изменеия минимальны и связаны с пересмотром стандартов.

Да ты что! То есть если MSVC стандарты пересматривает, это хорошо? А если gcc - плохо?

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

>Да ты что! То есть если MSVC стандарты пересматривает, это хорошо? А если gcc - плохо?

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

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

>>сверхъестественное существо. Живёт в бане. Шесть букв. Кто это?

>выхухоль?

Тебе счетные палочки подарить на 1 сентября?

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