Ste*_*sop 60
C++ 03(这是C++ 98的一个相当小的更新)基于C89的C兼容性(也称为C90,取决于您是ANSI还是ISO).C89不允许使用尾随逗号.C99确实允许它.C++ 11确实允许它(7.2/1具有枚举声明的语法).
事实上,即使使用C89,C++也不是完全向后兼容的,尽管如果它已经在C89中,你会期望C++允许它.
尾随逗号的关键优势在于你写这个:
enum Channel {
RED,
GREEN,
BLUE,
};
Run Code Online (Sandbox Code Playgroud)
然后将其更改为:
enum Channel {
RED,
GREEN,
BLUE,
ALPHA,
};
Run Code Online (Sandbox Code Playgroud)
很高兴diff
在版本中只更改一行.要在没有允许尾随逗号的情况下获得相同的效果,您可以编写:
enum Channel {
RED
,GREEN
,BLUE
};
Run Code Online (Sandbox Code Playgroud)
但是(a)这是疯狂的谈话,而且(b)它在你想要在开始时添加新值的(不可否认的罕见)情况中没有帮助.
小智 6
查看C++ 0x的最新草稿,看起来您可以使用尾随逗号:
enum-specifier:
enum-head { enumerator-list opt}
enum-head { enumerator-list , }
enumerator-list:
enumerator-definition
enumerator-list , enumerator-definition
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9067 次 |
最近记录: |