オブジェクトの明示的な特殊化の書き方
Car<T>
仮想メソッドで clear()?
template <class U>
class List
{
public:
virtual void clear();
};
template <class T>
template <>
void List < Car <T> >::clear() //Specialization U = Car <T>, compiler error
{
....
}
クラスカー:
template <class T>
class Car
{
T speed;
...
}
コンパイル エラー:
エラー 16 エラー C3855: 'List': テンプレート パラメーター 'Car' は宣言 h:...\List.hpp と互換性がありません 75 エラー 20 エラー C2264: 'List::clear': 関数の定義または宣言にエラーがあります。関数が呼び出されていません h:...\List.hpp 75
しかし、この構造は大丈夫です
template <>
void List < Car <double> >::clear() //Specialization U = Car <T>, compiler error
{
....
}