LINUX.ORG.RU

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


0

0

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

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

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

anonymous

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

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

http://www.kernel.org/pub/linux/kernel/v2.0/

P.S. ровно 10-летней давности. Рискнешь собрать?

anonymous
()

Хочется сострить

Типичной ошибкой С++ программиста является выбор С++ в качестве ЯП.

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

Уже лучше. По крайней мере количество букв сходится. Но всё равно не верно.

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

> Какие ещё бывают компилируемые ооп языки?

Object Pascal :-)

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

ffmpeg-0.4.8 3 года программе нет, на gcc 4.1 уже не собирается

kde 3.5.1 почти свежая на gcc 4.1 уже не собирается

avidemux-2.0.32 год проекту на gcc 4.1 уже не собирается

ntp-4.1.1 4 года проекту на gcc 4.1 уже не собирается

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

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

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

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

> 1. Языки развиваются. Компиляторы развиваются вместе с ними.

Языки НЕ развиваются. Последним версиям стандартов ISO на С и С++ уже многов времени. А вот пингвиньи компиляторы почему-то развиваются.

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

> avidemux-2.0.32 год проекту на gcc 4.1 уже не собирается

У меня на gcc version 3.4.4 [FreeBSD] 20050518 сия поделина собираться не захотела.

> Просто взял свой архив и попытался собрать с gcc 4.1

gcc 4.x тем и отличается,что более строгой проверкой качесва кода.

ИМХО если разработачики не удосужились нормально подготовить код - флаг им в руки.

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

> =8-O А причем тут stdio.h? Я там не замечал и намека на ООП...

А что такое FILE*, если не объект с простейшей объектной моделью (не подкрепленной синтаксисом, без наследования и пр. - но, например, с инкапсуляцией)?

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

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

>выхухоль?

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

значит МЕДВЕД!

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

1. С99 - относительно свежий стандарт (судя по поддержке компиляторами)

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

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

>А что такое FILE*, если не объект с простейшей объектной моделью (не подкрепленной синтаксисом, без наследования и пр. - но, например, с инкапсуляцией)?

мы уже объяснили всё г-ну AsphyX'у в linux-talks@c.j.r :)

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

> 2 - выложи.

Да сколько угодно. diald, publicfile. В районе RH9 что-то поменяли в errno, ругаются на него. Что точно я уже не помню, но к diald когда-то писал патч. ;-)

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

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

Надул пакет известно чем и натянул ему на голову?

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

>Языки НЕ развиваются. Последним версиям стандартов ISO на С и С++ уже многов времени. А вот пингвиньи компиляторы почему-то развиваются.

А Вы, батенька, назовите хотябы один компилятор (кроме Comeau), который бы удовлетворял этим последним стандартам. К стати компиляторы от MS исторически по этому показятелю в заднице. Ситуация начала выправлятся 3 года назад, когда они пригласили на работу Sutter'а, хотя до сих пор даже VC8 по этому показателю отсасывает у gcc.

(Имеется ввиду ISO C++)

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

> Да сколько угодно. diald, publicfile. В районе RH9 что-то поменяли в errno, ругаются на него. Что точно я уже не помню, но к diald когда-то писал патч. ;-)

Насчет ругани на errno - это скорее всего к libc, а не к компилятору

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

> Только что скомпилил программу 1995-го года, еще для gcc 2.5.8, 4.1-ым и ничего, работает.

Hello world!

eugine_kosenko ★★★
()

Отгадка: флудер.

Как не по смотрю на посты ленина, так сразу эта загадка вспоминается.

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

Ну и? Правильно, по-моему, что не компилируется, хотя там и есть слово external, но все равно. То есть тут довольно очевидно, в чем проблема и еще более очевидна, если сказать gcc3, чтобы он не скрывал от общественности то, что ему не по душе. Напиши патч, исправляющий ошибку в коде, там все довольно просто.

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

> Насчет ругани на errno - это скорее всего к libc, а не к компилятору

Хм... Да, ты прав. *смущённый*

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

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

Для рассказывания анекдотов и сказок есть другие сайты.

anonymous
()

а вообще говоря мысль! пытаться собрать свои проекты сразу несолькими компиляторами. если ни один не ругнётся - код верный

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

> а вообще говоря мысль! пытаться собрать свои проекты сразу несолькими компиляторами. если ни один не ругнётся - код верный

Специально давеча gcc-4.1 скачал.

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

brainfuck :) Могу дать на нем исходный код программы которая его же компилирует ;)

Хотя это не совсем компиляция... ;)

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

>> Какие ещё бывают компилируемые ооп языки?

> Ada, Java, O'Caml, Object Pascal, Objective C, C#, D, Forth, Eiffel, Oberon(?).

Ну люди! А как же ассемблер? fasm например.

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

>>Ну люди! А как же ассемблер? fasm например.

>А он компилируемый ООП-язык?

Если С - это ассемблер PDP11, возомнивший о себе, что он язык высокого уровня, то С++ - это как раз ассемблер, возомнивший о себе, что он ОО язык;)

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

>Ну люди! А как же ассемблер? fasm например.

fasm - не знаю, а tasm - там ООП только что заявлена. Ни одного из "трёх китов" - ни полиморфизма, ни наследования, ни инкапсуляции. Доступ к полям "объектов" через точку - это ещё не ООП :)

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