如何在递归宏展开中调用 concat_idents?
How do I call concat_idents inside a recursive macro expansion?
我正在尝试创建一个宏来扩展一组名称并为结构定义字段:
macro_rules! expand {
($($name:ident),*) => {
pub struct Test {
$(
concat_idents!(var_, $name) : Vec<$name>
),*
}
}
}
//fails
expand!(a,b,c);
这会失败,因为编译器无法将 concat_idents!
识别为宏。我该如何解决这个问题?
目前无法以任何方式做到这一点。替换 ($foo
) 可以,但宏调用不行。
我正在尝试创建一个宏来扩展一组名称并为结构定义字段:
macro_rules! expand {
($($name:ident),*) => {
pub struct Test {
$(
concat_idents!(var_, $name) : Vec<$name>
),*
}
}
}
//fails
expand!(a,b,c);
这会失败,因为编译器无法将 concat_idents!
识别为宏。我该如何解决这个问题?
目前无法以任何方式做到这一点。替换 ($foo
) 可以,但宏调用不行。