Namespaces
Variants

C compiler support

From cppreference.net
< c

Содержание

Функции C23

Обратите внимание, что этот список может измениться по мере развития чернового стандарта C23/2x.

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

В переводе сохранены все HTML-теги и атрибуты, текст внутри тегов ` ` оставлен без изменений. Переведено только слово "Yes" на "Да" в соответствующей ячейке таблицы, так как это единственный переводимый текст вне специальных тегов. **Примечание:** В данном HTML-фрагменте отсутствует переводимый текст, требующий перевода на русский язык. Все элементы содержат либо HTML-теги, атрибуты, числовые значения, либо C++ специфические термины (такие как `noreturn`), которые согласно инструкциям не подлежат переводу. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Директивы препроцессора `#embed` (C++ термин, не переводится) - Идентификатора документа `N3017` (не переводится) - Числовых значений в таблице (не переводятся) Сохранена оригинальная структура и форматирование HTML. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Тега ` ` с C++ термином `__VA_OPT__` (не подлежит переводу согласно инструкциям) - Числовых значений и кодов стандартов (N3033) - Пустых ячеек таблицы Если бы в фрагменте присутствовал обычный текст вне указанных исключений, он был бы переведен на русский язык с сохранением форматирования. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Ключевого слова C++ `nullptr` (не подлежит переводу согласно инструкциям) - Номера документа `N3042` (идентификатор документа) - Числовых значений в таблице (13, 16)
Функция C23

Документ(ы)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
static_assert без сообщения N2265 9 9 Да Да 6.5 2021.1.2 (clang based)
[[ nodiscard ]] N2267 10 9 Да 6.4 2021.1.2 (clang based)
[[ maybe_unused ]] N2270 10 9 Да 6.4 2021.1.2 (clang based)
[[ deprecated ]] N2334 10 9 Да 6.4 2021.1.2 (clang based)
Атрибуты N2335
N2554
10 9 Да 6.4 2021.1.2 (clang based)
Типы десятичных чисел с плавающей запятой IEEE 754 N2341 4.2 (частично)*
12
13.0 (частично)*
[[ fallthrough ]] N2408 10 9 Да 6.4 2021.1.2 (clang based)
u8 символьные константы N2418 10 15 6.5 2022.2
Удаление определений функций без прототипа N2432 10 15 2022.2
[[ nodiscard ]] с сообщением N2448 11 10 Да 6.4 2021.1.2 (clang based)
Безымянные параметры в определениях функций N2480 11 11 Да 6.4 2021.1.2 (clang based)
Метки перед объявлениями и в конце блоков N2508 11 16 Частично* 6.5 17.0 *
Бинарные целочисленные константы N2549 4.3 *
11
2.9 *
9
19.0 (2015)* * Да 6.5 11.0 *
__has_c_attribute в препроцессорных условных директивах N2553 11 9 Да 6.5 2021.1.2 (clang based)
Разрешить дублирование атрибутов N2557 11 13 Да 6.5 2021.4 (clang-based
Типы обмена и расширенные IEEE 754 N2601 7 (частично)*
14
6 (частично)* Частично*
Разделители цифр N2626 12 13 19.0 (2015)* * Да 6.5 18.0 *
#elifdef и #elifndef N2645 12 13 19.40* 13.1.6* 6.5 2021.4
Изменение типа u8 строковых литералов N2653 13
[[ maybe_unused ]] для меток N2662 11 16 6.5 2022.2
#warning N2686 Да Да Да 6.5 Да
Битово-точные целочисленные типы ( _BitInt ) N2763 14 (частично)* 15 6.5 2022.2
[[ noreturn ]] N2764 13 15 6.5 2022.2
Суффиксы для битово-точных целочисленных констант N2775 14 15 2022.2
__has_include в препроцессорных условных конструкциях N2799 5 Да 19.11* Да 6.5 18.0
Синтаксис идентификаторов с использованием Стандарта Юникод, Приложение 31 N2836 13 15 6.5 2022.2
Удаление объявлений функций без прототипа N2841 13 15 2022.2
Пустые инициализаторы N2900 Частично*
13
Частично* Частично* Частично* Частично*
typeof и typeof_unqual N2927
N2930
Частично*
13
Частично*
16
19.39* Частично* Частично* Частично* Частично*
Новая орфография ключевых слов N2934 13 16 6.5
Предопределенные true и false N2935 13 15 2022.2
[[ unsequenced ]] и [[ reproducible ]] N2956 15
Ослабление требований для списка вариативных параметров N2975 13 16 6.5 2023.1
Вывод типов в определениях объектов N3007 13 18
#embed N3017 15 19
constexpr объекты N3018 13 19
Улучшенные обычные перечисления N3029 13 20 *
Перечисления с фиксированными базовыми типами N3030 13 20 *
__VA_OPT__ N3033 8
13
12 19.39* 6.5
Спецификаторы класса хранения для составных литералов N3038 13
nullptr N3042 13 16


Функциональность C23


Документ(ы)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

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

Особенности C99

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

Функция C99

Документ(ы)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Универсальные символы в идентификаторах 3.1 Да Да
Увеличенные translation limits N590 0.9 N/A
// комментарии N644 2.7 Да Да
restrict указатели N448 2.95 Да частично *
Улучшенные arithmetic types N815
N601
N620
N638
N657
N694
N809
Да частично Возможно
Гибкие элементы массива 3.0 Да Да
Массивы переменной длины (VLA) типы N683 0.9 Да
Типы с изменяемой модификацией (VM) N2778 N/A Да
Назначенные инициализаторы N494 3.0 Да Да
Непостоянные инициализаторы 1.21 N/A
Идемпотентные cvr-квалификаторы N505 3.0 N/A
Запятая в конце enumerator-list 0.9 Да Да
Шестнадцатеричные плавающие константы N308 2.8 Да Да
Составные литералы N716 3.1 Да Да
Среда чисел с плавающей точкой частично частично
Требование усечения для делений знаковых целочисленных типов N617 0.9 N/A
Неявный return 0 ; в main() функции Да Да Да
Объявления и операторы в произвольном порядке N740 3.0 Да Да
init-statement в for циклах Да Да Да
inline функции N741 4.3 Да Да
Предопределённая переменная __func__ N611 2.95 Да Да
Cvr-квалификаторы и static в [ ] в объявлениях функций 3.1 Да
Вариативные макросы N707 2.95 Да Да
_Pragma оператор препроцессора N634 3.0 Да частично *
Стандартные прагмы для вычислений с плавающей точкой N631
N696
Нет Нет


Функция C99


Документ(ы)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray


Смотрите также

C++ documentation для compiler support