属性声明序列
为类型、对象、代码等引入由定义实现的属性,可以看成一种给编译器的flag
语法
[[ attribute-list ]]
[[ using attribute-namespace : attribute-list ]]
attribute声明方法可以有以下几种
解释
属性为各种由实现定义的语言扩展提供了统一的语法
int y[[] { return 0; }()]=1; //不可以,中括号需要连续的两个
int i [[cats::meow([[]])]]; //可以,int i具有一个属性,cats::meow的参数也有一个属性
如果无命名空间则被默认为std命名空间里的标准属性,例如
直落fallthrough是case语句后面不加break的意思
[[deprecated]]
某个entity的属性声明为deprecated后,编译器会warning一个deprecated