VisualC++を使用しています。テンプレートクラスがあり、重複する操作を追加したいのですが、ヘッダーファイルに以下のようにインプルメントします
template <class T> class QuantityT;
template <class T>
inline std::ostream & operator<< (std::ostream & os,const QuantityT<T> &quantity);
template <class T>
class QuantityT{
T quantity_;
template<class T> friend inline std::ostream & operator<< <T>(std::ostream & os,const QuantityT<T> &quantity);
};
ソースファイルで
template <class T>
inline std::ostream & operator<< (std::ostream & os,const QuantityT<T> &quantity){
}
しかし、リンクエラーが発生します:
main.obj:エラーLNK2019:未解決の外部シンボル "class std :: basic_ostream>&__ cdecl operator <<(class std :: basic_ostream>&、class CapacityT const&)"(?? $?6K @@ YAAAV?$ basic_ostream @ DU?$ char_traits @ D @ std @@@ std @@ AAV01 @ ABV?$ QuantityT @ K @@@ Z)関数 "public:virtual void __thiscall log :: print(class std :: basic_ostream
&)const "(?print @ log @@ UBEXAAV?$ basic_ostream @ DU?$ char_traits @ D @ std @@@ std @@@ Z
どうすれば修正できますか?