如何在递归宏扩展中调用concat_idents? [重复]

问题描述 投票:4回答:1

这个问题在这里已有答案:

我正在尝试创建一个宏来扩展一组名称并为结构定义字段:

macro_rules! expand {
  ($($name:ident),*) => {
     pub struct Test {
       $(
          concat_idents!(var_, $name) : Vec<$name>
        ),*
     }
  }
}
//fails
expand!(a,b,c);

由于编译器无法将concat_idents!识别为宏,因此失败。我该如何解决这个问题?

rust
1个回答
5
投票

目前不可能以任何方式做到这一点。替换($foo)在那里很好,但不是宏调用。

© www.soinside.com 2019 - 2024. All rights reserved.