Namespaces
Variants

C++11

From cppreference.net

C++11 является второй крупной версией C++ и наиболее важным обновлением со времён C++98. Было внесено множество изменений как для стандартизации существующих практик, так и для улучшения абстракций, доступных программистам на C++.

До того, как он был окончательно утверждён ISO 12 августа 2011 года, использовалось название 'C++0x', поскольку ожидалось его опубликование до 2010 года. Между C++03 и C++11 прошло 8 лет, что стало самым длинным интервалом между версиями на сегодняшний день. С тех пор в настоящее время C++ регулярно обновляется каждые 3 года.

В C++11 были добавлены следующие возможности:

Содержание

Основные возможности языка

Функции библиотеки

Заголовки

Функции библиотеки

**Примечание:** В данном случае весь текст на странице состоит из C++ специфических терминов (`std::begin`, `std::end`, `std::next`, `std::prev`), которые согласно инструкциям не подлежат переводу. HTML структура и атрибуты сохранены в оригинальном виде.

Отчеты о дефектах

Отчёты об ошибках, исправленные в C++11 (741 ядро, 868 библиотека)
  1. 1.0 1.1 1.2 Разрешение этих дефектов добавило следующие функции-члены, но они недоступны в режиме C++98 библиотеки libstdc++ :

Поддержка компиляторами

Основные возможности языка C++11

Изменения: - В атрибуте `title` переведено "Feature-testing macro" → "Макрос тестирования возможностей" - "Yes" → "Да" (в двух местах) - Все HTML-теги, атрибуты, C++ термины (`static_assert`, `FTM`, `__cpp_static_assert`) и числовые значения сохранены без изменений В данном HTML-фрагменте переведено только слово "Yes" → "Да" в соответствующих ячейках таблицы. Все остальные элементы (HTML-теги, атрибуты, числовые значения, названия стандартов и версий) сохранены в оригинальном виде. **Изменения:** - Слово "Yes" переведено как "Да" (два раза в таблице) - Все HTML-теги, атрибуты и форматирование сохранены без изменений - C++ термин `alignof` не переведен - Числовые значения и коды (N2341, версии компиляторов) не переведены - Текст внутри тегов ` ` не переведен **Примечания по переводу:** - Термин `nullptr` не переведен, так как это специфический термин C++ - HTML-теги и атрибуты сохранены без изменений - Числовые значения и коды (N2431, версии компиляторов) не переведены - Слово "Yes" переведено как "Да" в соответствующих ячейках таблицы - Форматирование и структура HTML полностью сохранены
Функция C++11

Документ(ы)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
HP aCC
Digital Mars C++
C99 препроцессор N1653 4.3 Да 19.0 (2015)* (частично)*
19.26*
Да 4.1 11.1 2015 7.0 8.4 Да 17.1.0 1.1.0 10.1 5.9 A.06.25 Да
static_assert ( FTM ) * N1720 4.3 2.9 16.0* Да 4.1 11.0 2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 5.13 A.06.25 8.52
Прямые угловые скобки N1757 4.3 Да 14.0* Да 4.1 11.0 2015 7.0 8.4 Да 17.1.0 1.1.0 12.1 5.13
Расширенные friend объявления N1791 4.7 2.9 16.0* Да 4.1 11.1 (частично)
12.0
2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 5.13 A.06.25
long long N1811 Да Да 14.0* Да Да Да 2015 7.0 8.4 Да 17.1.0 1.1.0 Да Да Да Да
auto N1984 4.4 Да 16.0* Да 3.9 11.0 (частично)*
12.0
2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 5.13 A.06.25
Делегирующие конструкторы ( FTM ) * N1986 4.7 3.0 18.0* Да 4.7 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 5.13 A.06.28
extern template N1987 3.3 Да 12.0* Да 3.9 9.0 2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 5.13 A.06.25
constexpr ( FTM ) * N2235 4.6 3.1 19.0 (2015)* Да 4.6 13.0 (частично)
14.0
2015 7.0 8.4 Да 17.1.0 1.1.0 12.1 (частично)
13.1
5.13 A.06.28
char16_t и char32_t ( FTM ) * N2249 4.4 2.9 19.0 (2015)* Да 4.4 12.1 (частично)*
14.0
2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1* 5.13 A.06.27 8.52
Поддержка компиляторами type traits . N2255* N2255
N2984
N3142
4.3 (частично)*
4.8 (частично)*
5
3.0 14.0*
(частично)*
19.0 (2015)*
Да 4.0 10.0 2015 8.4 Да 17.1.0 1.1.0 13.1.3 5.13 6.16
Шаблонные псевдонимы ( FTM ) * N2258 4.7 3.0 18.0* Да 4.2 12.1 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1* 5.13 A.06.27
alignas N2341 4.8 3.0 19.0 (2015)* Да 4.8 15.0 2015 7.0 8.6 Да 17.1.0 1.1.0 13.1.2* 5.13
alignof N2341 4.5 2.9 19.0 (2015)* Да 4.8 15.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13
Функции по умолчанию и удалённые функции N2346 4.4 3.0 18.0* Да 4.1 12.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1 5.13 A.06.25
Сильно типизированные enum N2347 4.4 2.9 16.0* (частично)
17.0*
Да 4.0 13.0 2015 7.0 8.4 Да 17.1.0 1.1.0 12.1 5.13 A.06.25
Атомарные операции N2427 4.4 3.1 17.0* Да Да 13.0 2015 8.4 Да 17.1.0 1.1.0 13.1.2* 5.14
nullptr N2431 4.6 2.9 16.0* Да 4.2 12.1 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1 5.13 A.06.27 8.52
Явные операторы преобразования N2437 4.5 3.0 18.0* Да 4.4 13.0 2015 7.0 8.4 Да 17.1.0 1.1.0 12.1 5.13 A.06.27
ref-qualifiers  ( FTM ) * N2439 4.8.1 2.9 19.0 (2015)* Да 4.7 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Юникод строковые литералы ( FTM ) * N2442 4.4 3.0 19.0 (2015)* Да 4.7 11.0* 2015 7.0 8.4 Да 17.1.0 1.1.0 10.1*
13.1.1*
5.7 A.06.28 8.52
Необработанные строковые литералы ( FTM ) * N2442 4.5 Да 18.0* Да 4.7 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1, кроме AIX xlC 13.1.3* 5.13 A.06.28 8.52
Встроенные пространства имён N2535 4.4 2.9 19.0 (2015)* Да 4.5 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 5.13 A.06.28
Наследование конструкторов ( FTM ) * N2540 4.8 3.3 19.0 (2015)* Да 4.8 15.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1* 5.13
Возвращаемые типы функций в конце объявления N2541 4.4 2.9 16.0* Да 4.1 12.0 2015 7.0 8.4 Да 17.1.0 1.1.0 12.1 5.13 A.06.27
Неограниченные union s N2544 4.6 3.0 19.0 (2015)* Да 4.6 14.0* 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Вариативные шаблоны ( FTM ) * N2242
N2555
4.3 (частично)*
4.4
2.9 18.0* Да 4.3 (частично)*
4.3
12.1 2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 (частично)* 5.13 A.06.27
Expression SFINAE N2634 4.4 2.9 19.14* Да 4.2 12.1 2015 7.0 8.4 Да 17.1.0 1.1.0
Локальные и безымянные типы в качестве параметров шаблонов N2657 4.5 2.9 16.0* Да 4.2 12.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.27
Потоковое локальное хранилище N2659 4.4 (частично)
4.8
3.3* 16.0* (частично)
19.0 (2015)*
Да 4.8 11.1 (частично)
15.0*
2015 8.4 Да 17.1.0 1.1.0 10.1 (частично)*
13.1.2 (частично)*
5.9 (частично) 8.52 (частично)
Динамическая инициализация и уничтожение с параллелизмом ( magic statics )  ( FTM ) * N2660 4.3 2.9 19.0 (2015)* Да Да 11.1* 2015 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.25
Сборка мусора и обнаружение утечек на основе достижимости N2670
Списки инициализации ( FTM ) * N2672 4.4 3.1 18.0* Да 4.5 13.0 (частично)
14.0
2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Инициализаторы нестатических членов данных ( FTM ) * N2756 4.7 3.0 18.0* Да 4.6 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
Атрибуты , [[ noreturn ]] ( FTM ) * N2761 4.8 3.3 19.0 (2015)* Да 4.2 12.1 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1* 5.13 A.06.27
[[ carries_dependency ]] N2556
N2643
3.3* 17.1.0*
Прямые (непрозрачные) enum объявления N2764 4.6 3.1 17.0* Да 4.5 11.1 (частично)
14.0
2015 7.0 8.4 Да 17.1.0 1.1.0 12.1 5.13
Пользовательские литералы ( FTM ) * N2765 4.7 3.1 19.0 (2015)* Да 4.8 15.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.14
Ссылки на rvalue ( FTM ) * N2118
N2844
CWG1138
4.3 (частично)*
4.5
2.9 16.0* (частично)*
17.0*
Да 4.5 11.1 (частично)*
12.0 (частично)*
14.0
2015 7.0* 8.4 Да 17.1.0 1.1.0 12.1 5.13 A.06.25
Лямбда-выражения ( FTM ) * N2550
N2658
N2927
4.5 3.1 16.0* (частично)*
17.0*
Да 4.1 12.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.25
Цикл for по диапазону ( FTM ) * N2930
N3271
4.6 3.0 17.0* Да 4.5 13.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.2* 5.13 A.06.28
noexcept N3050 4.6 3.0 19.0 (2015)* Да 4.5 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1* 5.13 A.06.28
Умолчанные перемещающие специальные функции-члены N3053 4.6 3.0 19.0 (2015)* Да 4.5 14.0 2015 7.0 8.4 Да 17.1.0 1.1.0 5.13 A.06.25
override и final N2928
N3206
N3272
4.7 2.9 14.0* (частично)
17.0*
Да 4.8 12.0 (частично)*
14.0
2015 7.0 8.4 Да 17.1.0 1.1.0 13.1.1* 5.13
decltype ( FTM ) * N2343
N3276
4.3 (частично)*
4.8.1
2.9 16.0* (частично)*
17.0*
Да 4.2 (частично)*
4.8
11.0 (частично)*
12.0
2015 7.0 8.4 Да 17.1.0 1.1.0 11.1 (частично)* 5.13 A.06.25 8.52 (частично)*


Функциональность C++11


Документ(ы)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Embarcadero C++ Builder
IBM Open XL C++ for AIX
IBM Open XL C++ for z/OS
IBM XL C++
Sun/Oracle C++
HP aCC
Digital Mars C++

Функции библиотеки C++11

Функция C++11

Документ(ы)

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
Библиотека регулярных выражений N1429 4.9 2.8 Да Да 17.1.0
Type traits . N1836* N1836
N2240
N2244
N2255
N2342
N2984
N3142
4.3 (частично)*
4.8 (частично)*
5
3.0 14.0*
(частично)*
19.0 (2015)*
Да 17.1.0 5.13 Да
Функции-члены cbegin , cend , crbegin , и crend контейнеров N1913
LWG1192
4.3 (частично)*
4.5
Да* 16.0* Да* 17.1.0
Сборка мусора и обнаружение утечек на основе достижимости ( поддержка библиотеки ) N2670 6
(no-op)*
3.4
(no-op)*
19.0 (2015)*
(no-op)*
Да
(no-op)*
17.1.0
Манипуляторы ввода-вывода для денег, времени и шестнадцатеричных чисел с плавающей точкой N2071
N2072
5 3.8 19.0 (2015)* Да 17.1.0 5.15
Запрет COW (copy-on-write) std::basic_string N2668 5 Да Да Да 17.1.0 Да


Функция C++11


Документ(ы)
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*

* - наведите курсор на ячейку, отмеченную звездочкой * , чтобы увидеть дополнительные всплывающие примечания.
DR nn - число nn после "DR" обозначает целевую ревизию C++, к которой применяется Отчет о Дефектах, например, DR20 → C++20.

Внешние ссылки

1. C++11 - Википедия
2. Рабочие примеры C++11