#include <iostream> #include <functional> void foo(int& r) { r = 100; } int main() { std::function<void(void)> f; int n = 3; // thread에서 동작한 값을 얻을 수 있는 인자가 없을 때 인자수를 조정할 수 있는 bind를 이용할 수 있다. f = std::bind(&foo, n); f(); std::cout << "f() n : " << n << std::endl; // => f는 내부적으로 "n"의 값 "0" 을 보관한다. // 0이 아닌 n 자체를 보관하게 하려면 아래 처럼 해야 합니다. f = std::bind(&foo, std::ref(n) ); f(); std::cout << "f() ref n : " << n << std::endl; }