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