#include #include using namespace Bu; class Thing { public: Thing() : iState( 82731 ) { } virtual ~Thing() { } void fnc0() { sio << iState << ": void fnc0()" << sio.nl; } void fnc1( int a ) { sio << iState << ": void fnc1( " << a << " )" << sio.nl; } void fnc2( int a, Bu::FString b ) { sio << iState << ": void fnc2( " << a << ", \"" << b << "\" )" << sio.nl; } void fnc3( int a, Bu::FString b, double c ) { sio << iState << ": void fnc3( " << a << ", \"" << b << "\", " << c << " )" << sio.nl; } void fnc4( int a, Bu::FString b, double c, char d ) { sio << iState << ": void fnc4( " << a << ", \"" << b << "\", " << c << ", '" << d << "' )" << sio.nl; } void fnc5( int a, Bu::FString b, double c, char d, long e ) { sio << iState << ": void fnc5( " << a << ", \"" << b << "\", " << c << ", '" << d << "', " << e << " )" << sio.nl; } private: int iState; }; void pfnc0() { sio << "This doesn't have state, it's pfnc0()!" << sio.nl; } void callit( Signal0 sig ) { sig(); } int main() { Thing t; Signal0 cb0( slot( &t, &Thing::fnc0 ) ); cb0(); Signal1 cb1( slot( &t, &Thing::fnc1 ) ); cb1( 5 ); Signal2 cb2( slot( &t, &Thing::fnc2 ) ); cb2( 5, "Hi there" ); Signal3 cb3( slot( &t, &Thing::fnc3 ) ); cb3( 5, "Hi there", 12.85 ); Signal4 cb4( slot( &t, &Thing::fnc4 ) ); cb4( 5, "Hi there", 12.85, 'z' ); Signal5 cb5( slot( &t, &Thing::fnc5 ) ); cb5( 5, "Hi there", 12.85, 'z', 849 ); // Signal1 cb1( slot( &t, &Thing::fnc1 ) ); // sio << "Result: " << cb1( 5 ) << sio.nl; }