Tôi đã thực hiện một số thử nghiệm bằng cách sử dụng mẫu mini_c tinh thần. Đáng tiếc là nó không giữ được ưu tiên điều hành như mong đợi:Ưu tiên vận hành trong tăng cường :: tinh thần?
int main()
{
return 3 > 10 || 3 > 1;
}
đánh giá để 0.
return (3 > 10) || (3 > 1);
lợi nhuận 1
tôi đã cố gắng để di chuyển các định nghĩa về "||" và "& &" lên đỉnh rất trong constructor của
template <typename Iterator>
expression<Iterator>::expression(
nhưng điều đó không thay đổi bất cứ điều gì. Làm thế nào có thể được cố định. Tôi đang sử dụng tăng 1.3.38.
Tôi chưa bao giờ sử dụng Boost.Spirit, nhưng tôi không xem bất kỳ thứ gì mà nó định nghĩa có thể tạo ra sự khác biệt ở đây. Bạn không có gì ngoài các nguyên thủy, và bạn không thể quá tải các toán tử dựng sẵn. –
Tôi có một câu hỏi khác xem xét mẫu này. Có lẽ bạn có thể giúp với điều đó? http://stackoverflow.com/questions/3591533/implementing-not-in-boostspirit-mini-c –