- 1 名前:デフォルトの名無しさん [2009/01/19(月) 21:22:22 ]
- 過去スレ
part 6 pc11.2ch.net/test/read.cgi/tech/1207749841/ part 5 pc11.2ch.net/test/read.cgi/tech/1192662575/ part 4 pc11.2ch.net/test/read.cgi/tech/1175663346/ part 3 pc11.2ch.net/test/read.cgi/tech/1158991211/ part 2 pc8.2ch.net/test/read.cgi/tech/1139313234/ part 1 pc8.2ch.net/test/read.cgi/tech/1091198276/ ■関連サイト■ Boost C++ Libraries www.boost.org/ Boost 翻訳プロジェクト boost.cppll.jp/HEAD/ Let's Boost www.kmonos.net/alang/boost/ boost info shinh.skr.jp/boost/
- 656 名前:654 mailto:sage [2009/06/14(日) 16:06:02 ]
- >>655
ふーむ。。。 template <typename TIPE> void Function(int x){〜}; とでも定義しておいて Function<TYPE>(x); と呼び出すんじゃだめなのかい?
- 657 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 18:02:25 ]
- >>656
>>655 はこういうことだと思う template<class T> void f(T, ...) { std::cout << "T"; } template<class T> void f(T*, boost::type<T>) { std::cout << "T*"; } int main() { double d = 0; int i = 0; f(d); f(&i, boost::type<int>()); f(&d, boost::type<double>()); }
- 658 名前:656 mailto:sage [2009/06/14(日) 21:10:20 ]
- >>657
悩んだ末、何となく意味が分かった気がする。 部分特殊化で template<class TYPE *> void f<TYPE *>(TYPE *, ...) としたくても出来ないから、 普通の型用とポインタ型用の2つを多重定義するオーバーロードで 似たようなことをしている訳か。 二人ともありがとう!
|

|