Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef void (A::*Setter)(int val);
- void set(A* a, Setter s, int val) {
- (a->*s)(val);
- }
- class A {
- int mVal;
- void setVal(int val) { mVal = val; }
- public:
- int getVal() { return mVal; }
- static A* create(int val) {
- A* a = new A;
- set(a, &A::setVal, val);
- return a;
- }
- };
- void test() {
- ASSERT(A::create(3)->getVal() == 3);
- }
Add Comment
Please, Sign In to add comment