掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     C++のソースコード生成に関して


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2009-4-10 9:07

C++のソースコード生成に関して

初めて質問させて頂きます。
C++のソースコード生成に関する以下の内容です。

1.C++コード生成で、ステレオタイプをtypedef等に設定した際に、ヘッダファイルだけでなく実装ファイルも出力されるが、ヘッダファイルだけ出力する設定はあるか。


2.C++コード生成で、パッケージを考慮したインクルード文を出力する方法はあるか。
→アドインを使用するのでしょうか?


3.C++コード生成で、クラスの属性プロパティで初期値として設定した値をコンストラクタの初期化子として出力する設定はあるか


4.C++コード生成で、Static且つconstなクラス属性の初期値を実装ファイルに出力する設定はあるか
→テンプレートを使用するのでしょうか?


よろしくお願いします。
tkouno
投稿日時: 2009-4-10 9:44
EA Administrator
投稿: 3939

Re: C++のソースコード生成に関して

頂きましたご質問に回答させていただきます。

まず、1番につきましては、ファイルの出力自体を
抑制する方法はありません。申し訳ございません。
(C++言語の場合には、常に2つのファイルが出力されます。)
出力実行後にバッチファイルなどで削除して下さいますよう
お願いします。
(この点は改善できるかどうか、対応策をを検討します。)

2番につきましては、パッケージ構成はコード生成テンプレートの
「importPackagePath」マクロで取得できます。
このマクロを利用して、テンプレートをカスタマイズすることになります。

fileImportsマクロの結果に追加する形の例では

$imports = %list="Import" @separator="\n"%
%REMOVE_DUPLICATES($imports, "\n")%

のようにしてImportテンプレートの結果のみを取得するようにして
Importテンプレートでは

#include"importPackagePath\%importClassName%.h"

のようにすることになります。

上の例では、importPackagePathが空の場合や、自分自身の
ヘッダファイルの場合の考慮が漏れていますので、ぜひ
この内容をご参考に、カスタマイズに挑戦してみて下さい。

3番と4番についても、テンプレートをカスタマイズする必要があります。

3番については、例えば以下の情報が参考になるのでは
ないかと思います。
https://www.sparxsystems.jp/forum/modules/xhnewbb/viewtopic.php?topic_id=1742&post_id=4040#forumpost4040

4番についても基本的な考え方は同じです。
ぜひ挑戦してみて下さい。


未登録ゲスト
投稿日時: 2009-4-10 12:04

Re: C++のソースコード生成に関して

ご回答ありがとうございました。

1番については改善されることを期待しています。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ