Zrobiłem kilka testów używając próbki spirit mini_c. Niestety nie zachowuje pierwszeństwo operatora zgodnie z oczekiwaniami:Priorytet operatorów w impulsie :: duch?
int main()
{
return 3 > 10 || 3 > 1;
}
rozpoznawaną 0.
return (3 > 10) || (3 > 1);
powrotów 1
Próbowałem przenieść definicję "||" i „& &” na samej górze w konstruktorze
template <typename Iterator>
expression<Iterator>::expression(
ale to niczego nie zmienia. Jak to naprawić. Używam boosta 1.3.38.
nigdy nie używałem Boost.Spirit, ale ja nie zobacz, jak wszystko, co ona definiuje, może mieć tutaj znaczenie. Nie masz nic oprócz prymitywów i nie możesz przeciążać wbudowanych operatorów. –
Mam inne pytanie dotyczące tej próbki. Może ty też możesz w tym pomóc? http://stackoverflow.com/questions/3591533/implementing-not-in-boostspirit-mini-c –