这个问题在这里已有答案:
我正在尝试创建一个宏来扩展一组名称并为结构定义字段:
macro_rules! expand {
($($name:ident),*) => {
pub struct Test {
$(
concat_idents!(var_, $name) : Vec<$name>
),*
}
}
}
//fails
expand!(a,b,c);
由于编译器无法将concat_idents!
识别为宏,因此失败。我该如何解决这个问题?
目前不可能以任何方式做到这一点。替换($foo
)在那里很好,但不是宏调用。