掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     インナークラスの型をもつ属性のコード生成について


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
sugimoto
投稿日時: 2010-1-6 16:38
EA Administrator
投稿: 1895

インナークラスの型をもつ属性のコード生成について

○ご指摘

インナークラスを使用したUMLモデルにおいて、C++でコード生成する際に、
バグと思われる問題が発生しています。

コード生成のオプションとして「namespaceを使う」ことを前提とします。

以下のようなモデル要素の階層を作ったとします。

packageA
 classB <-- package A で定義されるクラス
  enumC <-- class B のインナークラス

classBの属性としてenumC型の変数attを定義します。
この状態でコード生成すると、以下のコードが生成されます。

namespaceA {
 ClassB {
   enumC {
       ....(省略)
   }
   A::C att;
 }
}

上記コードは A::C att の部分でコンパイルエラーとなります。
classBとenumC は同一パッケージであるため、属性attの型名にA:: は不要です。

○回答

ご指摘の出力を確認いたしました。

不要な名前空間(パッケージ名)が出力されました。

こちらはEnterprise Architectの考慮漏れによるバグと思われますので、
開発元に改善を依頼いたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ