掲示板一覧   -   トピック一覧
   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>などの表記は
手動で修正いただきますようお願いいたします。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » C++ テンプレート機能 sugimoto 2006-12-15 13:41
     Re: C++ テンプレート機能 sugimoto 2006-12-21 16:58