如何在递归宏展开中调用 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) 可以,但宏调用不行。