>>688
ANSI C++ の規格では、private, protected, public の中ではメンバ変数のメモリ
配置順序は決まってるが、それをまたがった場合には実装依存になっている。
たとえば

private:
 x;
public:
 y;
private:
 z;

だと x, y, z ではなく x, z, y の順に配置されるかも知れんわけで、そのマクロを定義
すると既存のオブジェクトとバイナリ互換性を崩す可能性があるぞ。

まぁ、ネタニマジレス だけどさ(w