2012-02-15 20 views

Trả lời

9

Không có điểm chuỗi trong C++ 11, thay vì có trình tự trước và được sắp xếp theo trình tự sau mối quan hệ.

Dưới đây là một số ví dụ tầm thường trong đó hành vi khác nhau giữa C++ 03 và C++ 11

int x = 10; 
++++x; // well defined in C++11 

int x = 10; 
x = ++x +1; //well defined in C++11 

Tại sao? Có một cái nhìn tại this câu trả lời và các chủ đề liên quan.

4

Tôi nghĩ ví dụ nổi tiếng nhất là toán tử tăng trước.

int i = 0; 
++ ++ ++ i; 

Trong C++ 03, đây sẽ là UB và trong C++ 11, mỗi bài tập được sắp xếp trước lần đánh giá tiếp theo.

Tìm kiếm tiêu chuẩn cho sự khác biệt là khó khăn bởi vì chúng đã loại bỏ thuật ngữ "trình tự" có lợi cho "đặt hàng trước" và tương tự, và viết lại nhiều quy tắc từ đầu.

+0

'Tìm kiếm tiêu chuẩn cho sự khác biệt là khó khăn bởi vì chúng đã loại bỏ thuật ngữ" chuỗi điểm ", đây là lý do chính xác tôi đăng câu hỏi này. – shuttle87

+0

@ shuttle87 Vâng, xin lỗi về điều đó, nhưng ít nhất tôi đã đưa ra một ví dụ; v) – Potatoswatter

Các vấn đề liên quan