Функции языка на стадии становления не должны быть использованы
Функции языка на стадии становления не должны быть использованы.
Некоторые новые функции языка в Стандарте C11 имеют неопределенное, незаданное или заданное реализацией поведение. Эти функции могут также предоставить четко определенное поведение, которое игнорирует ожидания разработчика. Хотя правило 1.3 и директива 1.1 запрещают неопределенное и заданное реализацией поведение, чтобы избежать четко определенного поведения, которое игнорирует ожидания, некоторым функциям языка вкратце препятствуют с помощью правила 1.4.
Правило запрещает использование следующих функций языка:
_Generic
оператор.
_Noreturn
функциональный спецификатор и <stdnoreturn.h>
заголовочный файл
_Atomic
введите спецификатор и услуги, предоставленные <stdatomic.h>
(например, макросы, начинающиеся с ATOMIC_
и функции, начинающиеся с atomic_
реализованный как макросы в <stdatomic.h>
).
_Thread_local
спецификатор класса памяти и средства обеспечиваются <threads.h>
(например, типы, такие как thrd_t
и функционирует, такие как thrd_create
).
_Alignas
спецификатор выравнивания, _Alignof
оператор и <stdalign.h>
заголовочный файл и средства там (такие как alignas
и alignof
макросы).
Все средства в Приложении K Стандарта C11 о 'Связано проверяющих интерфейсах, кроме определения __STDC_WANT_LIB_EXT1__
к '0'
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: стандарт C среда |
Категория: необходимый |
Категория AGC: необходимый |