Pre-C++ 11 chúng ta biết rằng đoản mạch và trật tự thẩm định được yêu cầu cho nhà điều hành &&
vì:Safe đánh giá ngắn mạch trong C++ 11
1.9.18
trong việc đánh giá các khái niệm sau
a && b a || b a ? b : c a , b
sử dụng được xây dựng trong ý nghĩa của các toán tử trong các biểu thức này, có một điểm chuỗi sau khi đánh giá biểu thức đầu tiên (12).
Nhưng chuỗi điểm được không còn tồn tại trong C++ 11, như vậy mà là một phần tiêu chuẩn mà nói:
if (ptr && ptr->do_something())
{
}
là an toàn?
[expr.log.and]/2 – chris
Điểm chuỗi không đảm bảo đoản mạch. (Rõ ràng 'toán tử,' không thể ngắn mạch.) Bạn vẫn cần thông số toán tử thực tế để đảm bảo điều đó. –