Нет, всё-таки 0x разваливает и так уже рыхлый язык ещё больше. Хак на хаке. Вот, например, типы лямбда-выражений и указателей функций могут таки явно записываться в виде «int(int)», аналога «int -> int» в функциональных языках. А не только доставаться непонятно откуда через оператор decltype.
Но где этим можно пользоваться?
Да понятия не имею, где точно, и ответ на вопрос не очевиден. Нет совершенно никакого желания ковыряться и доподлинно выяснять, где таки можно, а где нельзя, хотя есть возможность. Пока мне разрешали пользоваться таким только при инстанциировании шаблонов.
В компактном языке должно быть или везде нельзя, или везде можно... Кто мне после этого скажет, что C++ не рыхлый?