テンプレート引数で異なるクラスを扱う templateによるキャストなどの際に使用します。 #include template class Hoge{ public: template Hoge& operator=( const Hoge& rhs ); public: T value_; }; template template inline Hoge& Hoge::operator=( const Hoge& rhs ) { value_ = static_cast(rhs.value_); return *this; } int main() { Hoge hogeInt; hogeInt.value_ = 1; Hoge hogeFloat; hogeFloat.value_ = 2.f; hogeFloat = hogeInt; // hogeFLoat = 1 return 0;