回答編集履歴
2
修正
answer
CHANGED
@@ -26,4 +26,30 @@
|
|
26
26
|
|
27
27
|
my_vendorlib_listener->set_callback( this->callback );
|
28
28
|
}
|
29
|
+
```
|
30
|
+
修正
|
31
|
+
```C++
|
32
|
+
// MyVendorLibApi.hpp
|
33
|
+
class MyVendorLibApi
|
34
|
+
{
|
35
|
+
private:
|
36
|
+
class MyVendorLibListener* my_vendorlib_listener;
|
37
|
+
|
38
|
+
public:
|
39
|
+
template<class T>
|
40
|
+
void set_callback(void(T::*fp)(int a), T *obj)
|
41
|
+
{
|
42
|
+
set_callback( boost::bind(fp, obj, boost::placeholders::_1) );
|
43
|
+
}
|
44
|
+
|
45
|
+
void set_callback( std::function<void(int)> callback );
|
46
|
+
};
|
47
|
+
|
48
|
+
//MyVendorLibApi.cpp
|
49
|
+
#include "my_vendorlib_listener.hpp"
|
50
|
+
|
51
|
+
void MyVendorLibApi::set_callback( std::function<void(int)> callback ){
|
52
|
+
|
53
|
+
my_vendorlib_listener->set_callback( callback );
|
54
|
+
}
|
29
55
|
```
|
1
誤字修正
answer
CHANGED
@@ -13,7 +13,9 @@
|
|
13
13
|
void set_callback(void(T::*fp)(int a), T *obj)
|
14
14
|
{
|
15
15
|
this->callback = boost::bind(fp, obj, boost::placeholders::_1);
|
16
|
+
push_callback();
|
16
17
|
}
|
18
|
+
private:
|
17
19
|
void push_callback( void );
|
18
20
|
};
|
19
21
|
|
@@ -24,17 +26,4 @@
|
|
24
26
|
|
25
27
|
my_vendorlib_listener->set_callback( this->callback );
|
26
28
|
}
|
27
|
-
|
28
|
-
// 実行
|
29
|
-
{
|
30
|
-
MyVendorLibApi api;
|
31
|
-
struct TEST {
|
32
|
-
void func( int ){}
|
33
|
-
} test;
|
34
|
-
|
35
|
-
api.set_callback( &TEST::func, &test );
|
36
|
-
api.push_callback();
|
37
|
-
}
|
38
|
-
|
39
|
-
```
|
29
|
+
```
|
40
|
-
ただ、あまりスマートじゃないような気もします。
|