Namespaces
Variants

Compiler support for C++14

From cppreference.net

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

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

Функция C++14

Документ(ы)

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++
Уточнена формулировка для контекстных преобразований N3323 4.9 3.4 18.0* Да 4.9 16.0 16.1 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.15
Бинарные литералы ( FTM ) * N3472 4.3*
4.9
2.9 19.0 (2015)* Да 4.10 11.0 2015 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.14
decltype(auto) , Вывод типа возвращаемого значения для обычных функций  ( FTM ) * ( FTM ) * N3638 4.8 (частично)*
4.9
3.3 (частично)*
3.4
19.0 (2015)* Да 4.9 15.0 16.1 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.15
Инициализированные/Обобщённые захваты лямбда-выражений (init-capture)  ( FTM ) * N3648 4.5 (частично)
4.9
3.4 19.0 (2015)* Да 4.10 15.0 16.1 9.0 8.6 10.3 17.1.0 1.1.0 16.1.1* 5.15
Обобщенные лямбда-выражения ( FTM ) * N3649 4.9 3.4 19.0 (2015)* Да 4.10 16.0 16.1 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.15
Шаблоны переменных ( FTM ) * N3651 5 3.4 19.0 (Update 2)* Да 4.11 17.0 17.4 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.15
Расширенный constexpr ( FTM ) * N3652 5 3.4 19.10* Да 4.11 17.0 17.4 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.15
Агрегаты с инициализаторами членов по умолчанию ( FTM ) * N3653 5 3.3 19.10* Да 4.9 16.0 16.1 9.0 8.6 10.3 17.1.0 1.1.0 16.1.1* 5.14
Пропуск/расширение memory allocations N3664 N/A 3.4 N/A Да N/A N/A 17.4 N/A 8.6 10.3 17.1.0 1.1.0 N/A N/A
[[ deprecated ]] атрибут N3760 4.9 3.4 19.0 (2015)* Да 4.9 15.0*
16.0
16.1 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.14
Размещённое освобождение памяти ( FTM ) * N3778 5 3.4 19.0 (2015)* Да 4.10.1 17.0 16.1 8.6 10.3 17.1.0 1.1.0 16.1.1* 5.14
Одинарная кавычка как разделитель цифр N3781 4.9 3.4 19.0 (2015)* Да 4.10 16.0 2015 9.0 8.6 10.3 17.1.0 1.1.0 13.1.2* 5.14


Функция C++14


Документ(ы)
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++

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

Изменения: - "for" → "для" - "and" → "и" - "Yes" → "Да" Все HTML-теги, атрибуты, содержимое внутри ` ` тегов и C++ специфические термины (constexpr, названия заголовочных файлов) сохранены без изменений. Изменения: - В атрибуте `title` переведено "Feature-testing macro" → "Макрос тестирования возможностей" - "Yes" → "Да" - Все HTML-теги, атрибуты, C++ термины (`std::integer_sequence`, `FTM`, `__cpp_lib_integer_sequence`) и числовые значения сохранены без изменений **Примечание:** В данном фрагменте HTML не содержится переводимого текста, так как: - Все текстовые элементы являются техническими терминами C++ (`std::is_null_pointer`, `FTM`, `LWG2247`) - Числовые значения версий не подлежат переводу - HTML теги и атрибуты сохранены без изменений - Специфические термины C++ оставлены на английском языке **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Все HTML-теги и атрибуты должны оставаться без изменений - Текст внутри тегов ` ` и ` ` содержит технические термины C++ (`std::make_reverse_iterator`, `FTM`, `LWG2285`), которые не подлежат переводу - Числовые значения версий (5, 3.4, 19.0) не переводятся - Специфические идентификаторы C++ сохраняются в оригинале **Изменения:** - Переведено "Yes" → "Да" в соответствующей ячейке таблицы - Все HTML-теги, атрибуты и C++ специфические термины (std::shared_timed_mutex, FTM, N3891, версии компиляторов) сохранены без изменений - Сохранено оригинальное форматирование и структура таблицы
Функция C++14

Документ(ы)

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ for AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
constexpr для <complex> N3302 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Прозрачные функциональные объекты операторов ( FTM ) * N3421 4.9 3.4 18.0* Да 17.1.0 5.15 10.3
std::result_of и SFINAE ( FTM ) * N3462 5 Да 19.0 (Update 2)* Да 17.1.0 5.15 10.3
constexpr для <chrono> N3469 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
constexpr для <array> N3470 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
constexpr для <initializer_list> , <utility> и <tuple> N3471 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Улучшенный std::integral_constant ( FTM ) * N3545 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Пользовательские литералы для <chrono> и <string> ( FTM ) * ( FTM ) * N3642 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Нулевые итераторы прямого доступа ( FTM ) * N3644 5 (частично)
10
3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
std::quoted ( FTM ) * N3654 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
std::make_unique ( FTM ) * N3656 4.9 3.4 18.0* Да 17.1.0 5.15 10.3
Гетерогенный поиск в ассоциативных контейнерах  ( FTM ) * N3657 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
std::integer_sequence ( FTM ) * N3658 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
std::shared_timed_mutex N3659 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
std::exchange ( FTM ) * N3668 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Исправление constexpr функций-членов без const N3669 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Обращение к кортежам по типу: std::get<T>() ( FTM ) * N3670 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Двухдиапазонные std::equal , std::is_permutation , std::mismatch ( FTM ) * N3671 5 3.4 19.0 (2015)* Да 17.1.0 5.15 10.3
Псевдонимы шаблонов для transformation traits ( FTM ) * N3655 4.9 3.4 18.0* Да
Пользовательские литералы для std::complex ( FTM ) * N3779 4.9 3.4 19.0 (2015)* Да
DR11: std::is_null_pointer ( FTM ) * LWG2247 4.9 3.4 19.0 (2015)*
std::is_final ( FTM ) * LWG2112 5 3.4 19.0 (2015)*
std::make_reverse_iterator ( FTM ) * LWG2285 5 3.4 19.0 (2015)*
std::shared_timed_mutex ( FTM ) * N3891 4.9 3.5 19.0 (2015)* Да
std::tuple_element_t ( FTM ) * N3887 4.10 3.5 19.0 (2015)* Да


Функция C++14


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