10 Declarations [dcl.dcl]

10.6 Attributes [dcl.attr]

10.6.6 Maybe unused attribute [dcl.attr.unused]

Значок attribute-token maybe_­unused указывает на то, что имя или объект, возможно, намеренно не используются. Он должен появляться не более одного раза в каждом attribute-listи не attribute-argument-clauseдолжен присутствовать.

Атрибут может применяться к объявлению класса typedef-name, переменной, нестатического элемента данных, функции, перечисления или перечислителя.

[ Note: Для отмеченного объекта maybe_­unusedрекомендуется, чтобы реализации не выдавали предупреждения о том, что объект не используется или что объект используется, несмотря на наличие атрибута. ]end note

Имя или сущность, объявленные без maybe_­unused атрибута, позже могут быть повторно объявлены с атрибутом и наоборот. Сущность считается отмеченной после первого объявления, которое ее отмечает.

[Example:

[[maybe_unused]] void f([[maybe_unused]] bool thing1,
                        [[maybe_unused]] bool thing2) {
  [[maybe_unused]] bool b = thing1 && thing2;
  assert(b);
}

Реализациям рекомендуется не предупреждать о том, что b не используется, независимо от того, определено оно или нет NDEBUG . ]end example