Список фич C++0x, поддерживаемых в Visual Studio 2010
В MSDN опубликовали список фич C++0x, которые поддерживает выходящая скоро Visual Studio 2010.
Вот этот список:
|
Proposal |
VC9 |
VC10 |
|
|
Rvalue references |
No |
v2 |
|
|
Rvalue references v2 |
No |
v2 |
|
|
Rvalue references for *this |
No |
No |
|
|
Initialization of class objects by rvalues |
Yes |
Yes |
|
|
static_assert |
No |
Yes |
|
|
auto |
No |
Yes |
|
|
Multi-declarator auto |
No |
Yes |
|
|
Removing old auto |
No |
Yes |
|
|
Trailing return types |
No |
Yes |
|
|
Lambdas |
No |
v1.0 |
|
|
decltype |
No |
Yes |
|
|
Right angle brackets |
Yes |
Yes |
|
|
Extern templates |
Yes |
Yes |
|
|
nullptr |
No |
Yes |
|
|
Strongly typed enums |
Partial |
Partial |
|
|
Forward declared enums |
Partial |
Partial |
|
|
Extended friend declarations |
Partial |
Partial |
|
|
Local and unnamed types as template arguments |
Yes |
Yes |
|
|
C++0x Core Language Features: Concurrency |
|||
|
exception_ptr |
No |
Yes |
|
|
Thread-local storage |
Partial |
Partial |
|
|
C++0x Core Language Features: C99 |
|||
|
__func__ |
Partial |
Partial |
|
|
C99 preprocessor |
Partial |
Partial |
|
|
long long |
Yes |
Yes |
Практически всё поддерживается полностью. “Partial” значит, что фича реализована не полностью или по-другому, не по стандарту. Например, __func__ не реализована, но __FUNCTION__ в Visual C уже давно работает.
Из моих любимых фич, которые реально упрощают и ускоряют работу - auto и лямбды.
А Rvalue references - еще более офигительная фича. Всё руки не доходят сделать тесты и написать статью со сравнением скорости работы STL контейнеров в VS9 и VS10 - разница будет в разы. При этом код менять не надо - просто перекомпилировать другим компилятором.
Это конечно отлично, но если посмотреть на список поддерживаемых GCC становиться грустно http://gcc.gnu.org/gcc-4.5/cxx0x_status.html
Есть вероятность что больше ничего нового в VS2010 уже поддерживать не будет. Раз с 12 апреля продажи начинаются в России.
Не будет конечно. RC вышел уже давно, а изменений в RC обычно не добавляют. Разве что в Service Pack 1 добавят что-то.
В разы - это преувеличение конечно, но первый попавшийся модуль, который мы скомпилили в бета версии студии дал прирост производительности 20%.
“В разы” увеличится для моего синтетического теста. Для реального модуля даже 20% - это нереально круто.
Несомненно круто. Когда-то давно при переходе с VC6 на VC2003 был прирост 10%. Правда сам переход был ужасным в плане совместимости. Сейчас просто открыли солющен в новой студии и все сразу скомпилировалось.
А в VS2003 в основном из за чего был прирост?
Тогда дело в основном сделали SSE2.
Это не фича, это исправление кошмарного бага в дизайне языка.
Не понятно почему. Какие тут могут быть сложности?!
Да, это здорово. Ещё бы простенький foreach.
Лично мне грустно потому что gcc 4.5 до продакшена хз когда доберётся. Даже в fedora 13 будет gcc 4.4 и это не спроста.