Từ những gì tôi hiểu, std::forward<T>(x)
tương đương với static_cast<T&&>(x)
.C++ std :: forward <T> vs static_cast <T>
Nhưng từ những gì tôi thấy, static_cast<T>(x)
dường như làm điều tương tự, như có thể thấy trong code
Câu hỏi của tôi sau do đó là lý do tại sao std::forward<T>
được thực hiện như static_cast<T&&>(x)
, và không static_cast<T>(x)
, nếu cả hai có cùng hiệu ứng?
Bạn đã không thử với 'int &'. – Quentin
@Quentin Trong trường hợp đó, nó luôn trả về một giá trị. – Mikrosaft
'static_cast' sẽ tạo bản sao giá trị –