C compiler support
Материал из cppreference.com
< c
![]() |
Эта страница поддерживается изо всех сил, но может не успевать за новейшими выпусками компиляторов. Если вы видите что-то устаревшее, пожалуйста, помогите нам с её обновлением! |
Содержание |
[править] Особенности C23
[править] Базовые возможности ядра C23
Этот раздел не завершён Причина: статус Apple Clang и других компиляторов, поддерживающих C2x |
Возможность C23 |
Статья(и) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
IBM XL C++ |
IBM Open XL C++ для AIX |
IBM Open XL C++ для z/OS |
Sun/Oracle C++ |
Embarcadero C++ Builder |
Cray |
Nvidia HPC C++ (бывшая PGI)* |
Nvidia nvcc |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
_Static_assert без сообщения | N2265 | 9 | 9 | Да | ||||||||||||
[[nodiscard]]
|
N2267 | 10 | 9 | Да | 6.4 | |||||||||||
[[maybe_unused]]
|
N2270 | 10 | 9 | Да | 6.4 | |||||||||||
[[deprecated]]
|
N2334 | 10 | 9 | Да | 6.4 | |||||||||||
Атрибуты | N2335 N2554 |
10 | 9 | Да | 6.4 | |||||||||||
Десятичные типы с плавающей точкой IEEE 754 | N2341 | 4.2 (частично)* | 13.0 (частично)* | |||||||||||||
[[fallthrough]]
|
N2408 | 10 | 9 | Да | 6.4 | |||||||||||
Символьные константы u8
|
N2418 | 10 | 15 | |||||||||||||
Удаление определений функций без прототипа | N2432 | 10 | 15 | |||||||||||||
[[nodiscard]] с сообщением
|
N2448 | 11 | 10 | Да | 6.4 | |||||||||||
Безымянные параметры в определениях функций | N2480 | 11 | 11 | Да | 6.4 | |||||||||||
Метки перед объявлениями и в конце блоков | N2508 | 11 | 16 | Частично* | 17.0* | |||||||||||
Двоичные целые константы | N2549 | 4.3* 11 |
2.9* 9 |
19.0 (2015)** | Да | 11.0* | ||||||||||
__has_c_attribute в условиях препроцессора | N2553 | 11 | 9 | Да | ||||||||||||
Разрешение дубликатов атрибутов | N2557 | 11 | 13 | Да | ||||||||||||
Обменные и расширенные типы IEEE 754 | N2601 | 7 (частично)* | 6 (частично)* | Частично* | ||||||||||||
Цифровые разделители | N2626 | 12 | 13 | 19.0 (2015)** | Да | 18.0* | ||||||||||
#elifdef и #elifndef
|
N2645 | 12 | 13 |
13.1.6* |
||||||||||||
Смена типа строковых литералов u8
|
N2653 | |||||||||||||||
[[maybe_unused]] для меток
|
N2662 | 11 | 16 | |||||||||||||
#warning | N2686 | Да | Да | Да | Да | |||||||||||
Точные битовые целые типы (_BitInt) | N2763 | 15 | ||||||||||||||
[[noreturn]]
|
N2764 | 13 | 15 | |||||||||||||
Суффиксы для точных битовых целых констант | N2775 | 15 | ||||||||||||||
__has_include в условиях препроцессора | N2799 | 5 | Да | 19.11* | Да | 18.0 | ||||||||||
Синтаксис идентификаторов с использованием стандарта Unicode приложение 31 | N2836 | 13 | 15 | |||||||||||||
Удаление объявлений функций без прототипа | N2841 | 13 | 15 |
| ||||||||||||
Пустые инициализаторы | N2900 | Частично* | Частично* | Частично* | Частично* | Частично* |
| |||||||||
typeof и typeof_unqual | N2927 N2930 |
Частично* 13 |
Частично* 16 |
Частично* | Частично* | Частично* | Частично* | |||||||||
Новое написание ключевых слов | N2934 | 13 | 16 | |||||||||||||
Предопределённые true и false
|
N2935 | 13 | 15 | |||||||||||||
[[unsequenced]] и [[reproducible]]
|
N2956 | |||||||||||||||
Ослабленные требования для списка с переменным количеством аргументов | N2975 | 13 | 16 | |||||||||||||
Вывод типа в определении объекта | N3007 | 13 | ||||||||||||||
#embed | N3017 | |||||||||||||||
Объекты constexpr | N3018 | 13 | ||||||||||||||
Улучшенные нормальные перечисления | N3029 | 13 | ||||||||||||||
Улучшения в перечислениях | N3030 | 13 | Возможно | |||||||||||||
__VA_OPT__
|
N3033 | 8 | 12 | |||||||||||||
Спецификаторы класса памяти для составных литералов | N3038 | 13 | ||||||||||||||
nullptr | N3042 | 13 | 16 |
| ||||||||||||
C23 возможность |
Страница(цы) |
GCC |
Clang |
MSVC |
Apple Clang |
EDG eccp |
Intel C++ |
IBM XL C++ |
IBM Open XL C++ для AIX |
IBM Open XL C++ для z/OS |
Sun/Oracle C++ |
Embarcadero C++ Builder |
Cray |
Nvidia HPC C++ (бывшая PGI)* |
Nvidia nvcc |
[править] Возможности библиотек C23
Этот раздел не завершён Причина: другой список для стандартных библиотек C |
[править] Особенности C99
[править] См. также
Документация C++ по поддержке компиляторами
|