发布于 2020-05-23 01:10:06
macro_rules
中的分支只需用;
分隔。尾随分号在那里是可选的。在形式语法 of macro_rules
中,这是由
MacroRules :
MacroRule ( ; MacroRule )* ;?
这里的语法类似于regex。规则列表至少是一个规则,后面是任意数量的分号-MacroRule
对。所有这些后面都是一个可选的分号。
在这里,选择()
、{}
还是[]
实际上并不重要。这三种方法都是解析DelimTokenTree
的公认方法。
DelimTokenTree :
( TokenTree* )
| [ TokenTree* ]
| { TokenTree* }
这意味着无论DelimTokenTree
是由()
、[]
还是{}
包围的,它都将被解析为相同的内容。
特别是,您所链接的宏与选择括号和尾随分号的所有六个组合一样工作。
https://stackoverflow.com/questions/61969531
复制相似问题