Không có điểm chuỗi với toán tử <<
để trình biên dịch được tự do đánh giá hàm dequeue
trước tiên. Điều được bảo đảm là kết quả của cuộc gọi thứ hai dequeue
(theo thứ tự xuất hiện trong biểu thức và không nhất thiết phải thứ tự mà nó được đánh giá) là <<
'được chỉnh sửa theo kết quả của <<
' lần đầu tiên (nếu bạn nhận được những gì tôi đang nói).
Vì vậy, trình biên dịch miễn phí dịch mã của bạn thành một số thứ giống như bất kỳ thứ nào trong số này (giả trung gian C++). Đây không phải là một danh sách đầy đủ.
auto tmp2 = myQueue.dequeue();
auto tmp1 = myQueue.dequeue();
std::ostream& tmp3 = cout << tmp1;
tmp3 << tmp2;
hoặc
auto tmp1 = myQueue.dequeue();
auto tmp2 = myQueue.dequeue();
std::ostream& tmp3 = cout << tmp1;
tmp3 << tmp2;
hoặc
auto tmp1 = myQueue.dequeue();
std::ostream& tmp3 = cout << tmp1;
auto tmp2 = myQueue.dequeue();
tmp3 << tmp2;
Dưới đây là những gì là tạm thời tương ứng với trong biểu thức ban đầu.
cout << myQueue.dequeue() << myQueue.dequeue();
| | | | |
| |____ tmp1 _____| |_____ tmp2 ____|
| |
|________ tmp3 _________|
Nguồn
2010-01-24 22:48:52
tất cả các câu trả lời đều đi đâu? bây giờ chỉ có một? – finiteloop
Người trả lời đã xóa họ vì họ nhận ra họ sai. –
Một số người xóa câu trả lời khi họ phát hiện ra họ sai. –