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: 'リスト':テンプレートパラメータ '車' は、宣言さhと互換性がありません... \一覧.hpp 75 エラー20エラーC2264: 'List :: clear':関数定義または宣言でエラーが発生しました。時間呼び出されていない機能:... \ List.hpp 75
しかし、この構造は、あなたが軌道に乗る必要があります
template <>
void List < Car <double> >::clear() //Specialization U = Car <T>, compiler error
{
....
}
'template <>'行なしで動作しますか? – fredoverflow
私はあなたが実際には明示的な専門化List>を定義する必要があると思います。それは私のコンパイラが不満を言っているからです: "不完全な型の無効な使用 'struct List >" –
BatchyX
btw –