Skip to content

Instantly share code, notes, and snippets.

@aminzai
Created May 16, 2012 02:25
Show Gist options
  • Save aminzai/2706798 to your computer and use it in GitHub Desktop.
Save aminzai/2706798 to your computer and use it in GitHub Desktop.
C++ GET/SET Macros
#ifndef __GETSET_DECL_
#define __GETSET_DECL_
#include "wx/wxprec.h"
#define GETSET(Type, MemberName, FaceName) \
Type Get##FaceName() const { \
return MemberName; \
}; \
void Set##FaceName(Type value) { \
MemberName = value; \
}
#define GETSETR(Type, MemberName, FaceName) \
const Type &Get##FaceName() const { \
return MemberName; \
}; \
void Set##FaceName(const Type &value) { \
MemberName = value; \
}
#define GET(Type, MemberName, FaceName) \
Type Get##FaceName() const { \
return MemberName; \
}
#define GETR(Type, MemberName, FaceName) \
const Type &Get##FaceName() const { \
return MemberName; \
}
#define GETRNC(Type, MemberName, FaceName) \
Type &Get##FaceName() { \
return MemberName; \
}
#define SET(Type, MemberName, FaceName) \
void Set##FaceName(const Type &value) { \
MemberName = value; \
}
// guarded versions
#define GETSETG(Type, MemberName, FaceName, GuardVal) \
Type Get##FaceName() const { \
wxASSERT(GuardVal); \
return MemberName; \
}; \
void Set##FaceName(Type value) { \
MemberName = value; \
}
#define GETSETGR(Type, MemberName, FaceName, GuardVal) \
const Type &Get##FaceName() const { \
wxASSERT(GuardVal); \
return MemberName; \
}; \
void Set##FaceName(const Type &value) { \
MemberName = value; \
}
#define GETG(Type, MemberName, FaceName, GuardVal) \
Type Get##FaceName() const { \
wxASSERT(GuardVal); \
return MemberName; \
}
#define GETGR(Type, MemberName, FaceName, GuardVal) \
const Type &Get##FaceName() const { \
wxASSERT(GuardVal); \
return MemberName; \
}
#define SETG(Type, MemberName, FaceName, GuardVal) \
void Set##FaceName(const Type &value) { \
wxASSERT(GuardVal); \
MemberName = value; \
}
#endif
@hazer-hazer
Copy link

👏👏👏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment