Выделение общих частей правил Духа

У меня есть много правил, которые имеют общий префикс и суффикс:

rule = begin_stuff >> some >> other >> stuff >> end_stuff.

(гдеbegin_stuff а такжеend_stuff составлены из литералов)

Я хотел быть в состоянии сказать

 rule = wrapped(some >> other >> stuff);

Я попробовал что-то вроде

  template Rule wrapped(Rule inside) 
  {
    Rule result;
    result = begin_stuff >> inside >> end_stuff;
    return result;
  }

но все, что я получаю, это много утверждений Ци во время компиляции.

Как я могу изменить правила Духа таким образом?

Ответы на вопрос(2)

Ваш ответ на вопрос