Я провел несколько тестов, используя пример Spirit mini_c. К сожалению, он не сохраняет приоритет оператора, как ожидалось:
int main()
{
return 3 > 10 || 3 > 1;
}
оценивается как 0.
return (3 > 10) || (3 > 1);
возвращает 1
Я попытался переместить определение «||» и "&&" на самый верх в конструкторе
template <typename Iterator>
expression<Iterator>::expression(
но это ничего не меняет. Как это можно исправить. Я использую Boost 1.3.38.