掲示板一覧 - トピック一覧 EA ソースコード生成・コード生成テンプレート
C++のスマートポインタの定義方法は? |
| フラット表示 | 前のトピック | 次のトピック |
| 投稿者 | トピック |
|---|---|
| sugimoto | 投稿日時: 2011-11-7 11:07 |
EA Administrator ![]() ![]() 投稿: 1895 |
C++のスマートポインタの定義方法は?サポートに寄せられたご質問の要約です。
○ご質問 boostのスマートポインタをクラスのメソッドの引数や戻り値に 使用するときのEAでの定義方法を教えてください。 定義してコード生成すると、 boost::shared_ptr<sample::classB> classA::func1(); や int classA::func2( boost::shared_ptr<sample::classB> aArg ); と出力されるようにしたいと思っています。 ○回答 こちらの実現には、タグ付き値を利用し、コード生成テンプレートを カスタマイズしていただく必要がございます。 例えば、該当の操作のタグ付き値にboost, 値にtrueなどと設定し、 その操作については、boost::shared_ptr<(操作の戻りの型)>を 出力するようにするようにコード生成テンプレートをカスタマイズします。 上記のタグ付き値を設定した場合、.cppに生成する操作については 「Operatino Declaration Impl」テンプレートにおいて、 %RESOLVE_QUALIFIED_TYPE("::")%の部分を以下のように カスタマイズすると、ご希望の結果が得られます。 $opInfo=%opTag:"boost"=="true" ? "boost::shared_ptr<" : ""% $opInfo+=%RESOLVE_QUALIFIED_TYPE("::")% $opInfo+=%opTag:"boost"=="true" ? ">" : ""% $opInfo .hの操作の定義部分、パラメータについても同様に、タグ付き値の設定および コード生成テンプレートのカスタマイズが必要になります。 ご確認のほど、よろしくお願いいたします。 |
| フラット表示 | 前のトピック | 次のトピック |
| 題名 | 投稿者 | 日時 |
|---|---|---|
| » |
sugimoto | 2011-11-7 11:07 |




