掲示板一覧 - トピック一覧 EA ソースコード生成・コード生成テンプレート C++ テンプレート機能 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
sugimoto | 投稿日時: 2006-12-15 13:41 |
EA Administrator 投稿: 1992 |
C++ テンプレート機能○ご質問
C++ でコード生成する場合、テンプレートクラス(Class1<class T>)の サブクラス (Class2) でテンプレートパラメータが a となるように指定しました。 Class2 は更に別のクラス (Class3) を多重継承しています。 Class3 はテンプレートクラスではありません。 この場合、生成されたコード Class2.h のクラス定義で、親クラスがClass3<a> と 表記されてしまいます。 Class3はテンプレートクラスではないので、Class3と表記したいのですが、 回避方法を教えてください。 ○回答 ご指摘いただきました現象を確認いたしました。 本来であれば、テンプレートのインスタンス化されたクラスである場合、 その親クラスがテンプレートクラスであればテンプレートの引数表記を 行うべきですが、現状多重継承が考慮に入れられてなく、その親クラス すべてについてテンプレートの引数表記を行うようになっております。 この点に関しましては、現状ソースコードテンプレートで対応すること ができません。(親クラスがテンプレートクラスであるかどうかを確認 できるインタフェースがないため) こちらにつきましては、改善させていただきます。 申し訳ございませんが、改善まではClass3<a>などの表記は 手動で修正いただきますようお願いいたします。 |
sugimoto | 投稿日時: 2006-12-21 16:58 |
EA Administrator 投稿: 1992 |
Re: C++ テンプレート機能本不具合は、開発元で修正予定となっております。
ただし、現状詳細な対応日程等は未定です。申し訳ございません。 なお、手動でソースコードを修正する以外に、以下の回避方法もあります。 1) サブクラス (Class2) のプロパティの詳細タブにて、引数の情報を削除。 2) サブクラスにて右クリック→「追加設定」→「親クラスとインタフェースの指定」 にてテンプレートクラス(Class1<class T>)を削除し、Class1<a>を追加する。 ご迷惑お掛けしますが、手動で修正または上記方法で回避してください。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |