Можно ли как-то совместить "общую" обработку ошибок (как это дано в руководстве) с уловкой Набиалека?Например:
...
on_error<fail>
(
start
, std::cout
<< val("Error! Expecting ")
<< _4 // what failed?
<< val(" here: \"")
<< construct<std::string>(_3, _2) // iterators to error-pos, end
<< val("\"")
<< std::endl
);
start = *(keyword[_a = _1] > lazy(*_a));
some_other_rule.name("other rule's name");
...
Теперь, когда some_other_rule
вызывается с отложенным вызовом и завершается неудачей, в сообщении об ошибке говорится, что "lazy"
ожидалось дословно, а не "other rule's name"
(что мне нужно).Это должно работать так, и я просто ошибаюсь где-то еще, или есть какие-то другие специфические уловки?