Thinking Different




boost::function

함수 및 함수객체 등을 저장

함수포인터를 대체할 수 있는 컨테이너


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
30
31
32
33
34
35
36
37
#include "stdafx.h"
 
#include <boost/function.hpp>
#include <boost/bind.hpp>
 
void print(int a, int b)
{
    cout << a + b << endl;
}
 
class test
{
public:
    // 함수 객체
    void operator()(int a, int b) { cout << a + b << endl; }
 
    // 멤버 함수
    void show(int a, int b) { cout << a * b << endl; }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    // 일반 함수
    boost::function<void(intint)> f = &print;
    f(10, 20);
 
    // 함수 객체
    boost::function<void(intint)> f2 = test();
    f2(40, 90);
 
    // 멤버 함수
    test t;
    boost::function<void(test*, intint)> f3 = &test::show;
    f3(&t, 30, 40);
 
    return 0;
}





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

Boost.Array  (0) 2015.05.04
Boost.Tuple & std::pair  (0) 2015.05.03
Boost.Bind  (0) 2015.04.30
Boost.Ref  (0) 2015.04.30
Boost.Atomic  (0) 2015.04.30