trainer, 06.07.2004 11:03:21 :
Иначе жизнь станет неинтересной.

Не... У меня иные развлечения
>Просто язык C++ позволяет делать то, что в реальной жизни использовать не стоит. 
Что в наше время является явным недостатком языка

На ассемблере тоже можно писать с продвинутыми макросами, объектами и т.п.
А MSIL - так и вовсе весь насквозь объектный
>Это как перегрузка операторов - можно перегрузить оператор + так, чтобы он выполнял вычитание.
Ну, не фортеру тебе про это рассказывать

мой старый прикол:
code text
3 3 * . -> 9
2 3 * . -> 6
4 1 * . -> 4
2 2 * . -> 5

Там было переопределение слова умножения с прямой проверкой операндов на 2 и 2
>JIT-компиляторы тоже неглупые люди пишут. 
Естественно
>Там в критических местах сборку мусора стараются не делать.
Дык, правильно.
>Да и в C++ можно реализовать некое подобие сборки мусора - класс std::auto_ptr и аналогичные в сторонних библиотеках. 
Речь же не о самой сборке мусора, а о возможностях, на это повязанных. Массивы с плавающими границами, массивы массивов, кольцевые присваивания объектов и т.д. и т.п. Есть масса задач, которые очень тяжело реализуются на Си++, восновном в области сложных структур данных - графы, там, их обработка.
Кстати, добрался я и до того, чтобы самому скомпилить свой фрагмент. VC++7, полная оптимизация:
code 6502acme
; 5 : int a=5;
; 6 : int b, c;
; 7 : a=(b=(a++)) + (c=(a++));
; 8 : printf("a=%d, b=%d, c=%d\n", a, b, c);
00000 6a 05 push 5
00002 6a 05 push 5
00004 6a 0c push 12 ; 0000000cH
00006 68 00 00 00 00 push OFFSET FLAT:??_C@_0BC@FBPOBFPB@a?$DN?$CFd?0?5b?$DN?$CFd?0?5c?$DN?$CFd?6?$AA@
0000b e8 00 00 00 00 call _printf
00010 83 c4 10 add esp, 16 ; 00000010H