Tôi đang xem một số mã sử dụng duration_cast
. Nhìn vào nó, tôi tự hỏi tại sao một static_cast
không được sử dụng vì mục đích của cuộc sống là để chuyển đổi giữa các loại.Tại sao C++ giới thiệu duration_cast thay vì sử dụng static_cast?
Tại sao C++ cần một toán tử mới để chuyển đổi giữa các lần? Tại sao static_cast
không được sử dụng?
Có lẽ tôi không đánh giá cao sự khác biệt C++ đang thực hiện giữa milli-giây, micro-giây, nano-giây, vv Đối với một số lý do, tôi nghĩ câu trả lời sẽ được rõ ràng hoặc thảo luận trên Stack Overflow, nhưng tôi chưa tìm thấy nó (chưa).
duration_cast thực hiện một phép tính toán học để dịch giữa hai khoảng thời gian của các phép đo khác nhau. Một static_cast chỉ có thể được thực hiện giữa các lớp trong một hệ thống phân cấp liên quan. Một duration_cast dịch giữa hai lớp hoàn toàn không có mối quan hệ nào, với bất kì cái gì. –
Sự khác biệt chính là static_cast được xây dựng trong trình biên dịch, trong khi duration_cast là một mẫu trong thư viện chuẩn. – dasblinkenlight
Cảm ơn @dasblinkenlight. Nó không xảy ra với tôi rằng 'duration_cast' không phải là một toán tử (kỹ thuật C++ khủng khiếp). Tôi có nên xóa câu hỏi này không? – jww