C++/TemplateMetaProgrammingat TECHC++/TemplateMetaProgramming - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト150:デフォルトの名無しさん 09/01/19 20:24:39 ポリシーによるプログラミングで質問です。 適当な乱数を発生させるTraitsクラスを何個か定義します。 struct r {int rdm(){return rand()%128;}}; struct rs{int rdm(){return rand()%7+60;}}; そんで、Traitsを使うクラスがこれ。ここまでは順調です。 template <class T=r> class R{int rdm(){return T.rdm();}}; この後、rdm関数が引数を持つようなTraitsを加えようとすると型があわないため困りました。 しかし、こういうケースは良くあるのではないかと思います。 struct rc{int rdm(int n){return n*(rand()%128);} 少し悩んでこんな解を出して見たのですが こういう場合、みなさんどのように解決されますか? template <int N> struct rt{int rdm(){return N*(rand()%128);} R<rt<3> > r; ↑この場合、途中で引数を変えたいと思った場合毎回インスタンスを作る必要がある点が若干面倒です。 また、整数引数しか使えません 関数でやる場合は引数変更は楽ですが Traitsにあたるものが増えてくると関数の組み合わせ爆発が大変です。 手法にこだわりはないのでこのやり方が楽、などあればきいてみたいです。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch