GCC 6.1.1给了我一个关于C代码的废弃声明警告
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;
documentation表示“如果该变量在源文件中的任何位置使用,则已弃用的属性将导致警告.”
由于警告指向第一行(struct foo),这是否意味着警告是因为结构使用已弃用的成员引起的?
有没有办法使用静态const struct成员的deprecated属性?
GCC 4.9.3似乎没有给出警告.
解决方法
看来这是GCC> = 5.0(
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71274)的错误.