C++ の template メンバ関数の表現法について多分に C++ とUML の相性(?)の問題な気はするのですが、 関数の template は UML 的には普通どうやって表現するもの なのでしょうか。
template<typename T> class foo { private: T t_; public: // 暗黙の型変換(Y->T)が前提 template<typename Y> foo(Y t):t_(t){} .... };
例えばこんなクラスがあったとき、T の方はパラメータライズドで いいとして、メンバ(に限らず)関数の template (この例では Y )の 方を、UMLで表現する方法がわからないのですが、2.0だと適切な表現が あったりするのでしょうか。
ちなみに、(当然のことながら) EA にソースを読ませると単に型名が "Y" の引数になり、特に template うんぬんは表現されません。 # 現状は、ノートで補足したりしてます。
# 独自タグなり作って、EA4.1のソース生成/読出テンプレートを # 駆使すると、(表示はともかく)生成と読み出しについて # 完全なマッピングも出来るんでしょうか....。
それ以前に、UML 使う前提で template なんか駆使するなという ことかな....とは薄々感じるのですが、これがあってこその C++なので。
C++ 使いの方はどうされているのか、よろしければ教えていただけない でしょうか。
|