Наконец-то !
Особенно радует:
1. Стандартизация регекспов
2. Возможность создания шаблона функции, возвращаемый тип которого определяется автоматически на основании другой функции или выражения;
3. Возможность создавать шаблоны с переменным количеством аргументов;
4. Расширенная поддержка символов в Unicode;
5. Возможность вызывать одни конструкторы класса из других конструкторов этого же класса, что позволяет создавать конструкторы, использующие другие конструкторы без дублирования кода; (Наконец-то!!!)
6. Возможность использования локальных и безымянных типов в качестве аргументов шаблонов;
7. alignments
8. constexpr
9. decltype
10. control of defaults: default and delete && control of defaults: move and copy
11. Preventing narrowing
12. override controls: override
13. override controls: final
14. Static (compile-time) assertions -- static_assert - изумительно. Хотя вобщем-то обходились раньше своими средствами.
15. template alias - О ДА !!!
16. Container improvements: Initializer lists, Move operators, Improved push operations, Scoped allocatorsНеоднозначно:
1. atomic operations - с одной стороны хорошо: стандартизация атомарных операций; с другой плохо: атомарные операции будут определены в userland. Непонятно как это скажется на производительности по сравнению с POSIX mutex-ами. Но уже хорошо, что для использования атомарных операций, необходим специфический синтаксис, - пересечений и конфликтов с существующей кодовой базой использующей POSIX threads wrappers небудет ... Или всё-таки будет если код будет смешаным ? Неясно.
2. Rvalue references - зрэ это они. Стандартная семантика lvalue/rvalue проста как топор, и слава богу! Введение move запутает семантику, и в резулътате уменьшает прозрачность кода.
Пугает:
1. Вместо макроса NULL для обозначения нулевого указателя введено ключевое слово nullptr. При этом nullptr не является зарезервированым. Это страшно ...
2. attributes. Обязательно найдутся вендоры, которые создадут диалекты.
В общем стандарт как стандарт, хорошо что уже приняли наконец-то.