Trong C++, std::reference_wrapper là một class template giúp gói một tham chiếu (reference) vào một đối tượng có thể xây dựng sao chép (copy constructible) và gán sao chép (copy assignable) kiểu T. Các instance của std::reference_wrapper về cơ bản là các đối tượng, nhưng chúng có thể chuyển đổi ngầm sang T&. Do đó, chúng có thể được sử dụng làm đối số cho các hàm nhận kiểu cơ sở bằng tham chiếu.
Ví dụ minh họa
#include <iostream>
#include <functional>
using namespace std;
int main() {
char a = 'h', b = 'e', c = 'l', d = 'l', e = 'o',
f = 'W', g = 'o', h = 'r', i = 'l', j = 'd';
reference_wrapper<char> ref[] = {a, b, c, d, e, f, g, h, i, j}; // Tạo mảng tham chiếu
for (char& s : ref)
cout << s;
cout << endl;
return 0;
}
Kết quả
helloWorld