/*! \brief GetProperty creates a simple wrapper for a field, creating a private field, and a public getter method. */ #define GetProperty(type, name) \ private: type __##name; \ public: [[nodiscard]] inline type Get##name() const{ return __##name; }; /*! \brief GetProperty creates a simple wrapper for a field, creating a private field, a public getter method, and a public setter method. */ #define GetSetProperty(type, name) \ private: type __##name; \ public: [[nodiscard]] inline type Get##name() const{ return __##name; }; \ public: inline void Set##name(type value) { __##name = value; }; \