【发布时间】:2014-11-26 00:18:08
【问题描述】:
作为学习练习,我正在尝试编写一个生成两个声明的宏。在此示例中,我尝试编写一个宏,该宏为具有单个字段的枚举和包含该字段实例的静态向量生成声明:
#![feature(macro_rules)]
macro_rules! create_enum(
( $enum_name : ident , $a_field_name : ident ) =>
{
enum $enum_name { $a_field_name };
static foovec: [$enum_name,..1] = [ $a_field_name ];
};
)
create_enum! (Direction , NORTH)
我得到错误:
enums.rs:5:36: 5:37 error: macro expansion ignores token `;` and any following
enums.rs:5 enum $enum_name { $a_field_name };
我可能尝试了 10 种标点符号变体,但都没有成功,所以我开始怀疑 rust 宏是否不支持。
【问题讨论】: