Tôi gặp sự cố với mẫu mẫu và khấu trừ tham số. Đây là mã:Chức năng mẫu mẫu và khấu trừ tham số
template<typename U, template<typename> class T>
void test(T<U>&& t)
{
...
}
Tôi mong đợi điều này chấp nhận giá trị và giá trị, nhưng chỉ hoạt động với giá trị. Quy tắc thu gọn "T & & & = T &" không áp dụng trong trường hợp này?
Tôi cũng có thể khai báo hàm tham chiếu lvalue, nhưng làm cho mã ít đọc được hơn.
Nếu bạn hỏi tại sao tôi cần điều này là sử dụng static_assert để kiểm tra xem T là một lớp cụ thể hay không. Nếu có một cách đơn giản hơn để làm như vậy, tôi sẽ vui lòng thay đổi mã của mình, nhưng tôi muốn biết các mẫu khuôn mẫu có thể sử dụng theo cách này hay không.
Cảm ơn