Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GCC中的枚举器属性_C_Gcc_Enums - Fatal编程技术网

GCC中的枚举器属性

GCC中的枚举器属性,c,gcc,enums,C,Gcc,Enums,GCC声称它支持枚举器属性: enum E { oldval __attribute__((deprecated)), newval }; int fn (void) { return oldval; } GCC允许在枚举数上设置属性 然后给出了使用这些属性的代码示例: enum E { oldval __attribute__((deprecated)), newval }; int fn (void) { return oldv

GCC声称它支持枚举器属性:

 enum E {
   oldval __attribute__((deprecated)),
   newval
 };

 int
 fn (void)
 {
   return oldval;
 }
GCC允许在枚举数上设置属性

然后给出了使用这些属性的代码示例:

 enum E {
   oldval __attribute__((deprecated)),
   newval
 };

 int
 fn (void)
 {
   return oldval;
 }
但当我在我的GCC(4.8.4)上尝试时,我得到一个错误:

t.c:2:15: error: expected ‘,’ or ‘}’ before ‘__attribute__’
        oldval __attribute__((deprecated)),
               ^
我需要在某个地方启用它们吗?或者使用不同的GCC


请注意,Clang还声称支持此C扩展,但使用Clang它可以正常工作。

您正在查看的文档引用了最新的开发分支,但是如果我们转到并查看最新版本,我们将看不到枚举器属性部分。这就解释了为什么该功能可以在旧版本中使用,但不能在旧版本中使用


因此,这是一个相对较新的功能,仅在head分支中可用,并且还不属于任何其他版本。叮当声似乎一直在响。

似乎接受了GCC 5.2失败的消息。在我看来,这就像是GCC或文档中的一个bug(可能它们不再受支持,但它们忘记了更新文档)。这看起来像是一个新的发展,你正在寻找出血版本的在线文档。请参见在2015年5月至5月实施该计划。如果你看这个,你就找不到了!注意,任何支持任何类型属性的编译器都应该支持C++11
[[attribute]]
语法。这适用于即将推出的C++1z标准中的枚举数,但实际上语法适用于较旧的方言。