Глядя на спецификацию [[maybe_unused]]
, она заявляет:
Появляется в объявлении класса, typedef, переменная, нестатический член данных, функция, перечисление или перечислитель. Если компилятор выдает предупреждения о неиспользуемых объектах, это предупреждение подавляется для любой объявленной сущности Maybe_unused.
Как говорится в перечислителе, я ожидаю, что у него будет прецедент. Как единственное, что я мог придумать, это предупреждение -Wswitch
, я попробовал его с Clang, GCC и MSVC.
enum A
{
B,
C [[maybe_unused]]
};
void f(A a)
{
switch (a)
{
case B: break;
}
}
Все 3 компилятора дают мне следующие предупреждения:
<source>:9:13: warning: enumeration value 'C' not handled in switch [-Wswitch]
switch (a)
^
Является ли это допустимым прецедентом для использования этого атрибута, есть ли другие варианты использования для добавления атрибута в этом месте или это просто бесполезное дополнение?