Language/C++
[C++] std::ref, std::reference_wrapper
어발
2023. 9. 1. 16:23
std::ref()
- "call by value"를 사용하는 함수 템플릿에 객체를 참조로 보내고 싶을때 사용
- <functional>헤더, C+11부터 지원
std::reference_wrapper
#include <iostream>
template<typename T>
struct reference_wrapper {
T* obj;
public:
reference_wrapper(T& t) : obj(&t) {}
operator T&() { return *obj; }
};
int main() {
int n = 0;
reference_wrapper<int> rw = n;
int& r = rw; // rw.operator int&()
r = 100;
std::cout << n << std::endl; // 100 출력
}
728x90