クラスメンバー宣言/getter/setter自動記述マクロ

// macro for properties
#define POC_PROP( typ, mem, Mem )\
public:\
  void		set##Mem( const typ& val ){ mem = val; } \
  typ&		ref##Mem( void ){ return mem; }\
  const typ&	Mem( void ) const { return mem; }\
  typ*    p##Mem( void ){ return &mem; }\
protected:\
  typ		mem;

#define POC_PROP_POINTER( typ, mem, Mem )\
public:\
  void            set##Mem( typ* const& val ){ mem = val; }\
  typ*& 	        ref##Mem( void ){ return mem; }\
  typ*            Mem( void ){ return mem; }\
  const typ*      Mem( void ) const { return mem; }\
protected:\
  typ*            mem;

ちなみに使い方はこんな感じ。

class Hoge
{
  POC_PROP( int, apple_, Apple );
  POC_PROP( float, orange_, Orange );
  POC_PROP_POINTER( char, cafe_, Cafe );
};

いやー、ものぐさなもので。自分しか関わらないコードだし。自分だけなら自分は絶対意味忘れないし。
(このコードはVC++Xcodeに対応しています。)