LINUX.ORG.RU

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

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

В Паскале есть вариантные записи.

ЕМНИП, у них очень слабый контроль компилятором.

В Си делается с помощью структурки с тегом и объединением. Да, руками.

Руками можно сделать вообще всё, но это нерелевантно обсуждению.

Абсолютно не трейты.

Можно пример для того, чтобы прочувствовать разницу?

По сравнению с Rust: нет наследования; невозможно указать как границу в дженерике. По сравнению с абстрактным классом Си++: нет проверки типов (по-любому объект - это void *).

Мы говорим об ООП,

Выше уже сказали: современное понимание ООП - это наследование интерфейсов и агрегация при их реализации (и кстати, эти идеи озвучивались уже 25 лет назад).

исключениях и др. выпиленных фичах.

Выпиленных по сравнению с чем? В Си и Паскале никогда не было ООП, в стандартном Си (и стандартном Паскале?) нет исключений и дженериков.

И якобы замену для них.

Мне не нужна замена C++-style ООП и исключений. Если тебе необходимо и то, и другое - Си++ никуда не делся

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

В Си делается с помощью структурки с тегом и объединением. Да, руками.

Руками можно сделать вообще всё, но это нерелевантно обсуждению.

Абсолютно не трейты.

Можно пример для того, чтобы прочувствовать разницу?

По сравнению с Rust: нет наследования; невозможно указать как границу в дженерике. По сравнению с абстрактным классом Си++: нет проверки типов (по-любому объект - это void *).

Мы говорим об ООП,

Выше уже сказали: современное понимание ООП - это наследование интерфейсов и агрегация при их реализации (и кстати, эти идеи озвучивались уже 25 лет назад).

исключениях и др. выпиленных фичах.

Выпиленных по сравнению с чем? В Си и Паскале никогда не было ООП, в стандартном Си (и стандартном Паскале?) нет исключений и дженериков.

И якобы замену для них.

Мне не нужна замена C++-style ООП и исключений. Если тебе необходимо и то, и другое - Си++ никуда не делся