もう寝たかな?まあいいか。勝手に続けてます。
ちょっと凝ってみた。

#ifdef __BORLANDC__
#define PROPERTY(T, N) __property T N = { read = get_##N, write = set_##N }
#define PROPERTY_INITIALIZATION(T, N) dummy_##N()
#define PROPERTY_IMPLEMENTATION(T, N) int dummy_##N[0]
#else
#define PROPERTY(T, N) property_##N N
#define PROPERTY_INITIALIZATION(T, N) N(this)
#define PROPERTY_IMPLEMENTATION(T, N) \
struct property_##N \
{ \
self_type *_this; \
public: \
property_##N(self_type *t) : _this(t) { } \
operator T () { return _this->Get##N(); } \
void operator = (T v) { _this->Set##N(v); } \
}; \
friend property_##N
#endif