Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- template <typename Type, class MainClass, Type MainClass::*Member, bool is_get_public, bool is_set_public>
- struct property;
- template <typename Type, class MainClass, Type MainClass::*Member>
- struct property<Type, MainClass, Member, true, true>
- {
- public:
- property(MainClass& o): obj(o) {};
- Type& operator =(const Type& val)
- {
- return obj.*Member=val;
- }
- operator Type()
- {
- return obj.*Member;
- }
- MainClass& obj;
- };
- struct S
- {
- private:
- int _a;
- public:
- property<int, S, &S::_a, true, true> a; //(*this)
- S(): a(*this) {}
- };
- int main()
- {
- using namespace std;
- S s;
- s.a=12;
- cout << (int)s.a;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement