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 38 39 40 41 42 43 | #include <boost/signals2.hpp> class My { private: boost::signals2::signal<void (int)> sig; public: template < typename F, typename T, typename A1 > void proxy( F f, T t, A1 a1 ) { boost::bind( f, t, a1 ); // this gets messaged elsewhere } int foo( int i ) { return i-1; } int bar( int i ) { return i+1; } template < typename F, typename T, typename A1 > boost::signals2::connection connect( F f, T t, A1 a1 ) { return sig.connect( boost::bind( &My::proxy< F, T, int >, t, f, t, a1 ) ); // ^^^ // here } void init() { boost::signals2::connection c1 = connect( &My::foo, this, 11 ); boost::signals2::connection c2 = connect( &My::bar, this, _1 ); } }; int main() { My().init(); } |
I2luY2x1ZGUgPGJvb3N0L3NpZ25hbHMyLmhwcD4KCmNsYXNzIE15CnsKcHJpdmF0ZToKICAgIGJvb3N0OjpzaWduYWxzMjo6c2lnbmFsPHZvaWQgKGludCk+IHNpZzsKCnB1YmxpYzoKICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgQTEgPgogICAgdm9pZCBwcm94eSggRiBmLCBUIHQsIEExIGExICkKICAgIHsKICAgICAgICBib29zdDo6YmluZCggZiwgdCwgYTEgKTsgICAgLy8gdGhpcyBnZXRzIG1lc3NhZ2VkIGVsc2V3aGVyZQogICAgfQoKICAgIGludCBmb28oIGludCBpICkKICAgIHsKICAgICAgICByZXR1cm4gaS0xOwogICAgfQoKICAgIGludCBiYXIoIGludCBpICkKICAgIHsKICAgICAgICByZXR1cm4gaSsxOwogICAgfQoKICAgIHRlbXBsYXRlIDwgdHlwZW5hbWUgRiwgdHlwZW5hbWUgVCwgdHlwZW5hbWUgQTEgPgogICAgYm9vc3Q6OnNpZ25hbHMyOjpjb25uZWN0aW9uIGNvbm5lY3QoIEYgZiwgVCB0LCBBMSBhMSApCiAgICB7CiAgICAgICAgcmV0dXJuIHNpZy5jb25uZWN0KCBib29zdDo6YmluZCggJk15Ojpwcm94eTwgRiwgVCwgaW50ID4sIHQsIGYsIHQsIGExICkgKTsKICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl4KICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXJlCiAgICB9CgogICAgdm9pZCBpbml0KCkKICAgIHsKICAgICAgICBib29zdDo6c2lnbmFsczI6OmNvbm5lY3Rpb24gYzEgPSBjb25uZWN0KCAmTXk6OmZvbywgdGhpcywgMTEgKTsKICAgICAgICBib29zdDo6c2lnbmFsczI6OmNvbm5lY3Rpb24gYzIgPSBjb25uZWN0KCAmTXk6OmJhciwgdGhpcywgXzEgKTsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgTXkoKS5pbml0KCk7Cn0K
-
upload with new input
-
result: Success time: 0s memory: 2884 kB returned value: 0


