bsnes/nall/property.hpp

14 lines
586 B
C++

#if !defined(property)
#define property1(declaration) public: declaration
#define property2(declaration, getter) public: __declspec(property(get=getter)) declaration; protected: declaration##_
#define property3(declaration, getter, setter) public: __declspec(property(get=getter, put=setter)) declaration; protected: declaration##_
#define property_(_1, _2, _3, name, ...) name
#define property(...) property_(__VA_ARGS__, property3, property2, property1)(__VA_ARGS__)
#else
#undef property1
#undef property2
#undef property3
#undef property_
#undef property
#endif