2016-04-23 2 views

ответ

3

Проблема заключается в том, что macro_rules! машины не может вернуться из захвата. После того, как он начнет , попробовав, чтобы совместить захват, он либо преуспевает, либо завершает вызов макроса ..

Для того, чтобы сделать это, вы должны предоставить какое-то буквальное матч до для захвата, что macro_rules! можно использовать, чтобы различать между правилами. Например:

macro_rules! mtc { 
    (ident $ident:ident) => ("ident"); 
    (expr $string:expr) => ("string"); 
} 

Кроме того, чтобы ответить на неявный вопрос: нет, нет никакого способа специально соответствовать строковым, или действительно любой другой рода буквальным.

Смежные вопросы