Ich habe einige Tests mit der spirit mini_c Probe gemacht. Leider hat halten sie den Betreiber nicht Vorrang wie erwartet:Betreiber Vorrang in Boost :: Geist?
int main()
{
return 3 > 10 || 3 > 1;
}
wertet auf 0.
return (3 > 10) || (3 > 1);
gibt 1 zurück
Ich habe versucht, die Definition von "||" zu bewegen und „& &“ bis ganz nach oben in den Konstruktor
template <typename Iterator>
expression<Iterator>::expression(
aber das ändert nichts. Wie kann das behoben werden? Ich benutze Boost 1.3.38.
Ich habe noch nie Boost.Spirit verwendet, aber ich weiß nicht Sehen Sie, wie etwas, das es definiert, möglicherweise hier einen Unterschied machen könnte. Sie haben nichts als Primitive, und Sie können die eingebauten Operatoren nicht überladen. –
Ich habe eine andere Frage in Anbetracht dieser Probe. Vielleicht kannst du damit auch helfen? http://stackoverflow.com/questions/3591533/implementing-not-in-boostspirit-mini-c –