GCC 4.4.1 Release & C++0x support
August 5th, 2009 by sorsarreВ порядке безделия забрел на gcc.gnu.org. Оказалось, в середине июля GCC 4.4.1 наконец-таки вышел в тираж. На самом деле, самое интересное, помимо фикса того гаденького бага с выравниванием пакованных структур (хотя, кажется, это было еще в 4.4.0, точно не помню), происходит здесь и здесь.
Речь там вот о чем: пока наши космические корабли бороздят просторы Тихого океана, банда во главе с Тем-Самым-Бородатым-Шведом и Гербом Саттером, известная как The C++ Standards Commitee снова взялась готовить большие и малые ништяки для простых смертных юзеров ц-с-крестиками и горы геморроя для создателей компиляторов. Неплохой обзор приблуд нового стандарта имеется в википедии: http://en.wikipedia.org/wiki/C++0x.
Что касается собственно GCC, то радостного много: это и появление тредов в libstdc++, и inline namespaces, и рабочий auto, и новый синтаксис обьявления функций, который дает еще пуще извращаться с темплейтами, и (наконец-таки, а то уж было думал, застрянет эта фича в comeau на веки вечные) extern templates. Среди реально доставляющего - фикс right angle brackets ( попробуйте как-нибудь в темплейтах изобразить конструкцию “>>” - обматерит), variadic templates и static assertions. Ах да, забыл, там еще впихнута поддержка юникодных строк. Правда, не могу пока сказать, есть ли поддержка юникода на уровне libstdc++, в частности, злосчастный utf-8 наверняка std::string’ом обрабатывается по-прежнему - как попало. С utf-16 должно быть все нормально, ибо там отдельный char_traits, однако, utf-16 в опенсорсной среде крайне непопулярен и в основном используется мелкософтом. Вот-с
А вообще, тяните себе драфт нового стандарта: http://www.open-std.org/jtc1/sc22/wg21/docs/projects
Да, раз уж заикнулся про M$, то стоит сказать, что у них такого изобилия реализованных фич нет, но зато у них получилось реализовать гвоздь программы — в последних версиях студийного компилятора есть поддержка лямбда-функций ![]()