重複の可能性:
関数テンプレートの部分的な特殊化
思いついたキーワードで検索すると、さまざまな問題に適した解決策が得られるため、問題の解決策はどこにも見つかりません。私はこれが前に尋ねられなければならないことを理解しています、ただ解決策を見つけることができません。
関数テンプレートがあるとします。
template<class any> print(any value);
私はそれをこのように専門化することができます:例えばint
:
template<> print<int>(int value)
{
std::cout << value;
}
しかし、今問題は、ベクトルでも機能するようにしたいです。ベクトルクラスはテンプレートクラスであるため、難しくなります。
このような機能を専門にする:
template<class any> print<vector<any> >(vector<any> value) {}
次のエラーが生成されます(MinGW g ++):
FILE: error: function template partial specialization 'print<vector<any> >' is not allowed
関数printは単なる例であることに注意してください。
どうすればこれを解決できますか?