Как я могу избежать знака доллара для такого макроса?
macro_rules! test {
($ $name:ident) => {
println!(stringify!($name));
};
}
fn main() {
test!($abc);
}
Я хочу получить abc. Я пробовал использовать $$ и множество возможных способов избежать этого, но ничего не могу найти. Все, что я могу найти в этом Интернете, это использовать $$ для экранирования метапеременных и выдает ошибку. Могу ли я как-то использовать литеральный тип?
Вот что я пробовал:
$$\$_$$_$$:literal$$:literal
@Samathingamajig, Нет... Я бы хотел.
macro_rules! может иметь $ в качестве зарезервированного символа, возможно, вам придется написать собственный макрос с нуля, если вы хотите использовать литерал $Вы можете записать это как tt, но это не требует доллара.

Согласно справочнику Rust,
Символ $ не может быть сопоставлен или транскрибирован буквально.
https://doc.rust-lang.org/reference/macros-by-example.html#transcribing
Обратная косая черта перед этим работает?