複数のアイテムを展開するこの単純なマクロを考えてみると、これはどのようにマクロを引数として取ることができますか?複数の項目を含むマクロをマクロに渡すにはどうすればよいですか?
macro_rules! print_structs {
($($t:ty)*) => ($(
println!("{:?}", TypeId::of::<$t>());
)*)
}
// expands one println per type!
print_structs! { i8 i16 usize String }
事前定義された型のマクロはどのように渡すことができますか?非稼働マクロの
例:
macro_rules! some_types {
() => {
i8 i16 usize String
}
}
print_structs! { some_types!() }
は、問題を見てplay.rust-lang.orgたとえば、コメントを解除UNCOMMENT TO TEST
行を参照してください。
はエラーを与える:macro expansion ignores token `i16` and any following
私はまた、例えば、含めるファイルにリストを入れてみました:
print_structs! {
include!("some_types.in")
}
...しかし、これはエラーを与える:expected type, found `include!("../struct_list.rs")`