c++でテンプレ使って実装を別ファイルで隠す場合、
// h //////////////////////////////////////////////////
template<typename T> class cls
{
public:
template<typename U> U func();
private:
T var = 0;
};
// cpp1 //////////////////////////////////////////////////
template<> template<> char cls<char>::func<char> { return var; }
template<> template<> int cls<char>::func<int> { return var; }
template<> template<> char cls<int>::func<char> { return var; }
template<> template<> int cls<int>::func<int> { return var; }
// cpp2 //////////////////////////////////////////////////
template<typename T> template<> char cls<T>::func<char>(){ return var; }
template<typename T> template<> int cls<T>::func<int>(){ return var; }
template<> class cls<char>;
template<> class cls<int>;
//////////////////////////////////////////////////
cpp1みたいに全部型指定していく場合はビルド出来るんだけど、
cpp2みたいに別けて型指定していくと出来ない。
cpp2みたいな事を実現可能な方法って無いですかね?
そもそも書き方が間違ってる?
C++相談室 part141
■ このスレッドは過去ログ倉庫に格納されています
116デフォルトの名無しさん
2019/03/02(土) 23:32:17.29ID:4PbQivqk■ このスレッドは過去ログ倉庫に格納されています