They are called attributes, and their syntax and behavior are defined in section 7.6.1 of the C ++ standard, attribute syntax and semantics. They look like this in grammar:
attribute-specifier: [ [ attribute-list ] ] alignment-specifier
The metal shading language defines a lot of attributes that allow you to associate various semantics with variables, struct / class members and function arguments (including variable table bindings, as in your question).
The metallic shade specification refers to the C ++ standard, so the C ++ standard is indeed a reference for reference:
The Metal programming language is based on the C ++ 14 specification (aka, ISO / IEC JTC1 / SC22 / WG21 N4431) with specific extensions and limitations. Please refer to the C ++ 14 Specification for a detailed description of the language grammar.
source share