C++相談室 part59
■ このスレッドは過去ログ倉庫に格納されています
0754デフォルトの名無しさん
2007/12/27(木) 15:55:46template <typename T> T print();
って宣言されてんだから、どう考えても
(T=intの場合) int print<int>()
か
(T=Hogeの場合) Hoge print<Hoge>()
にしかならない
もう1個テンプレートクラスかませて
template <typename T> PrintReturn<T>::type print();
として
template<T> class PrintReturn { public: typedef T type; };
template<> class PrintReturn<Hoge> { public: typedef int type; };
とすればいいんじゃないかな
そしたら
(T=intの場合) PrintReturn<int>::type print<int>() → int print<int>()
(T=Hogeの場合) PrintReturn<Hoge>::type print<Hoge>() → int print<Hoge>()
になると思う
■ このスレッドは過去ログ倉庫に格納されています