Họ có nghĩa là điều tương tự?
Universal reference là một thuật ngữ Scott Meyers đặt ra để mô tả các khái niệm về chụp một tài liệu tham khảo rvalue một mẫu tham số cv-không đủ tiêu chuẩn, mà sau đó có thể suy ra như hoặc là một giá trị hoặc một tài liệu tham khảo giá trị trái.
Vào thời điểm đó các tiêu chuẩn C++ không có một thuật ngữ đặc biệt cho việc này, đó là một sự giám sát trong C++ 11 và làm cho nó khó khăn để dạy. giám sát này đã được khắc phục bằng cách N4164, mà thêm vào định nghĩa sau đây để [temp.deduct]:
Tham chiếu chuyển tiếp là một tài liệu tham khảo rvalue đến một tham số mẫu cv-không đủ tiêu chuẩn. Nếu P
là tham chiếu chuyển tiếp và đối số là một giá trị, loại "tham chiếu lvalue đến A" được sử dụng thay cho A để khấu trừ loại.
Do đó, hai có nghĩa là cùng một điều và cụm từ chuẩn C++ hiện tại là tham chiếu chuyển tiếp. Bản thân bài báo nêu rõ lý do tại sao "tham chiếu chuyển tiếp" là một thuật ngữ tốt hơn so với "tham chiếu chung".
Chỉ là tham chiếu chuyển tiếp nếu nội dung hàm gọi std::forward
?
Không, bạn làm gì với tham chiếu chuyển tiếp không liên quan đến tên. Tham chiếu chuyển tiếp khái niệm chỉ đơn giản đề cập đến cách loại T
được suy ra trong:
template <class T> void foo(T&&); // <==
Nó không cần phải được chuyển tiếp sau đó.
Xem https://isocpp.org/blog/2012/11/universal-references-in-c11-scott-meyers đối với một số tài liệu cơ bản. –
@SamVarshavchik Bạn có thực sự đọc câu hỏi hoặc blog đó không? – Barry