boost::asio::post 함수의 인자로 클래스의 인스턴스를 전달하는 경우에는 반드시 해당 클래스에 함수 호출 연산자오버로딩 되어있어야 합니다.


  • cpp
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
#include <iostream>
#include <boost/asio.hpp>

class handler
{
public:
handler(int a, int b) : a_(a), b_(b) {}

// 해당 함수 주석 처리하면 compile error!!
void operator()()
{
std::cout << a_ * b_ << std::endl;
}

private:
int a_;
int b_;
};

int main()
{
handler h(10, 20);
boost::asio::post(h);
return 0;
}