Bất cứ ai có thể cho tôi biết diễn viên này có hiệu lực không (ngoài việc thiết lập happyNumber thành 1337), nếu có, và nếu nó không có hiệu ứng khác, làm cách nào tôi có thể viết mã như thế này ??? Đây có phải là lỗi trình biên dịch hay một số tính năng ẩn của C++ không?Có gì với static_cast với nhiều đối số?
int happyNumber = static_cast<int>(123.456, TRUE, "WTF" , false , "IS" , NULL , "GOING" , 0xff , "ON???" , 1337);
Tôi rất ngạc nhiên vì điều này sẽ biên dịch. Tôi tìm thấy nó thông qua một lỗi mà tôi vô tình thiết lập tham số thứ hai cho một cái gì đó mà có nghĩa là để đi trong một cuộc gọi chức năng của biểu thức được đúc. Điều này dẫn đến một lỗi khó chịu khi đối tượng được truyền từ tham số thứ hai, gọi hàm chỉ với một đối số. Nó được biên soạn ... Và ban đầu đã không bùng nổ ...
Tôi đang sử dụng Microsoft Visual C++ 2008.
Điều đó hoàn toàn hợp pháp và không có lỗi. – Anonymous
Ah, vâng, bạn nói đúng. Nó đã rất khó hiểu với tôi sau đó rằng tôi * biết * nó phải là một lỗi trình biên dịch - mà nó đã không được :) Tôi đã không bao giờ chạy vào các nhà điều hành dấu phẩy trước đây. – Statement