Namespaces
Variants

C attribute: maybe_unused (since C23)

From cppreference.net

Подавляет предупреждения о неиспользуемых сущностях.

Содержание

Синтаксис

[[ maybe_unused ]]
[[ __maybe_unused__ ]]
**Примечание:** В данном фрагменте HTML-кода весь текст, который должен быть переведен, находится внутри HTML-тегов, которые согласно инструкциям не подлежат переводу. Содержимое тегов ` ` и ` ` представляет собой C++ специфические термины и атрибуты (`[[maybe_unused]]` и `[[__maybe_unused__]]`), которые также не должны переводиться согласно вашим требованиям. Поэтому перевод не требуется - весь контент сохранен в оригинальном виде.

Объяснение

Этот атрибут может появляться в объявлении следующих сущностей:

Если компилятор выдает предупреждения о неиспользуемых сущностях, это предупреждение подавляется для любой сущности, объявленной maybe_unused .

Пример

#include <assert.h>
[[maybe_unused]] void f([[maybe_unused]] _Bool cond1, [[maybe_unused]] _Bool cond2)
{
   [[maybe_unused]] _Bool b = cond1 && cond2;
   assert(b); // в режиме release, assert исключается при компиляции, и b не используется
              // предупреждения нет, так как переменная объявлена [[maybe_unused]]
} // параметры cond1 и cond2 не используются, предупреждения нет
int main(void)
{
    f(1, 1);
}

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

Документация C++ для maybe_unused