thể trùng lặp:
Double Negation in C++ code.Điều gì làm tăng gấp đôi (!!) được sử dụng trên biến không phải là boolean?
tôi đang làm việc với mã sản xuất mà tôi đã chạy ngang qua tuyên bố như thế này một vài lần:
Class.func(!!notABool);
Cặp đôi đầu tiên của thời đại Tôi bác bỏ nó như là một programmer quirk
(có thể để nhấn mạnh rằng nó là một tuyên bố có điều kiện chứ không phải là một số đang được pa ssed vào func?) nhưng tôi đã chạy qua một số báo cáo sử dụng ở trên và bây giờ tôi tự hỏi liệu nó thực sự làm cho một sự khác biệt hay không. Trong hầu hết các trường hợp notABool
là một con số (int, float, double ... Tôi đã thấy tất cả 3) đoán ban đầu của tôi là nó là giống như gõ:
Class.func((bool)notABool);
nhưng tôi không hoàn toàn chắc chắn?
Đang chờ báo giá Donald Knuth trong 5 ... 4 ... 3 ... – Skizz
@jonsca: Doh! Đã tìm kiếm tất cả các từ khác ngoại trừ từ chối. Đồng ý, đó là một bản sao. – Samaursa
Không phải lo lắng. Tôi nghĩ rằng tiêu đề của bản sao là gây hiểu nhầm, nhưng nó xuất hiện trên danh sách "Liên quan" ----> – jonsca