Подтвердить что ты не робот

Устаревшие элементы структуры С++

GCC 6.1.1 дает предупреждение о недопустимом объявлении кода С++

struct foo
{
   __attribute__ ((deprecated)) static const int a = 1;
};


dep.cpp:1:8: warning: ‘foo::a’ is deprecated [-Wdeprecated-declarations]
   struct foo
          ^~~
dep.cpp:3:50: note: declared here
   __attribute__ ((deprecated)) static const int a = 1;

Документация говорит, что "Устаревший атрибут приводит к предупреждению, если переменная используется в любом месте исходного файла." .

Как предупреждение указывает на первую строку (struct foo), означает ли это, что предупреждение возникает потому, что структура "использует" устаревший элемент? Есть ли способ использовать устаревший атрибут для элементов static const struct?

GCC 4.9.3, похоже, не дает этого предупреждения.

4b9b3361