• Source
    1. #include <iostream>
    2. #include <functional>
    3.  
    4. void foo(int& r)
    5. {
    6. r = 100;
    7. }
    8.  
    9. int main()
    10. {
    11. std::function<void(void)> f;
    12.  
    13. int n = 3;
    14.  
    15. // thread에서 동작한 값을 얻을 수 있는 인자가 없을 때 인자수를 조정할 수 있는 bind를 이용할 수 있다.
    16. f = std::bind(&foo, n);
    17. f();
    18. std::cout << "f() n : " << n << std::endl;
    19. // => f는 내부적으로 "n"의 값 "0" 을 보관한다.
    20.  
    21. // 0이 아닌 n 자체를 보관하게 하려면 아래 처럼 해야 합니다.
    22. f = std::bind(&foo, std::ref(n) );
    23. f();
    24.  
    25. std::cout << "f() ref n : " << n << std::endl;
    26. }