Thinking Different




boost::ref

call-by-reference 로써 일반적인 레퍼런스 참조


boost::cref

boost::ref의 const 형이다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
 
#include <boost/bind.hpp>
#include <boost/ref.hpp>
 
class test
{
public:
    test() { cout << "생성자" << endl; }
    ~test() { cout << "소멸자" << endl; }
    test(const test& s) { cout << "복사 생성자" << endl; }
};
 
void func(int a, std::ostream &os)
{
    os << a << endl;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    test testObj;
    test copyObj = boost::ref(testObj);    // 복사 (복사생성자 O)
    test &refObj = boost::ref(testObj);    // 레퍼런스 (혹사생성자 X)
 
    int x = 10;
    boost::bind(func, _1, boost::ref(std::cout))(x);
    
    return 0;
}





'프로그래밍 언어 > boost' 카테고리의 다른 글

Boost.Function  (0) 2015.05.01
Boost.Bind  (0) 2015.04.30
Boost.Atomic  (0) 2015.04.30
Boost.ScopeExit  (0) 2015.04.28
Boost.Pool  (0) 2015.04.28