Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Vcl.ComCtrls.hpp> // String
- #include <map>
- #include <iostream>
- // *pragma push explicit rcti
- #pragma explicit_rtti methods (__published, public) properties (__published, public)
- class TTestClass : public TObject {
- String FName;
- public :
- __property
- String Name = { read = FName };
- void DoGetRequest () { std::cout << ( __FUNC__ ) << "\n"; }
- void DoPostRequest () { std::cout << ( __FUNC__ ) << "\n"; }
- };
- typedef void (TTestClass::* TResourceFunc)();
- typedef std::map <String, TResourceFunc> TResourceFuncsList;
- void f( TTestClass* tc, TResourceFunc rf ) { (tc->*rf)(); }
- int main()
- {
- TTestClass* tc = new TTestClass();
- // f( tc, &TTestClass::DoGetRequest );
- // f( tc, &TTestClass::DoPostRequest );
- TResourceFuncsList rfl { {"Get Request", &TTestClass::DoGetRequest } ,
- {"Post Request", &TTestClass::DoPostRequest}
- };
- f( tc, rfl["Get Request" ] );
- f( tc, rfl["Post Request"] );
- getchar();
- return 0;
- }
Add Comment
Please, Sign In to add comment