以下の混乱を、どう解決すべきか分かる人いますか?

・無名の共用体: 問題は特に有りません。
・無名の構造体: 入れ子の構造体(nested class)の「型定義」と区別が付かない気がします。
以下はその説明です :

class CPerson {   // (1)
  struct _TAaa {   // (2)
    ・・・
  };   // (3)
};

と書いた場合、(3) の部分にメンバ名が書かれていません。

しかし、これでは以下のどちらかなのか区別できない気がするのです。

a. CPerson の中に「無名ではあるが実態のあるメンバ」として「メンバ変数」を定義するつもり。

b. 単に、CPerson の class scope の中に _TAaa というタグ名を持つ構造体を「型定義」するつもり。


MSは、a の方針で、この形式 (2)〜(3) を、「anonymous structure」と定義しているらしいです。
しかし、C++ には、b の解釈の「nested class」という言葉も存在しています。