Tôi chỉ đang viết một nhà máy sản xuất đối tượng chung và sử dụng siêu thư viện tiền xử lý tăng cường để tạo một mẫu đa dạng (sử dụng năm 2010 và nó không hỗ trợ chúng). Hàm của tôi sử dụng tham chiếu rval và std::forward
để thực hiện chuyển tiếp hoàn hảo và nó khiến tôi phải suy nghĩ ... khi C ++ 0X ra mắt và tôi có một trình biên dịch tiêu chuẩn, tôi sẽ thực hiện việc này với các mẫu biến thể thực. Làm thế nào, tôi sẽ gọi std::forward
các đối số?
template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
y(std::forward(...params)); //? - I doubt this would work.
}
Cách duy nhất tôi có thể nghĩ là yêu cầu giải nén thủ công ... params và tôi cũng chưa hoàn thành. Có một cú pháp nhanh hơn sẽ hoạt động không?
void f(Params&& ...params)