私はテンプレートの専門化を実装する必要があります。以下は、私のコードです:テンプレートの特殊化の実装
#include <iostream>
using namespace std;
// class template
template <typename T>
class mycontainer
{
T element;
public:
mycontainer (T arg);
T increase() {return ++element;}
};
// class template specialization
template <>
class mycontainer <void> {
int element;
public:
mycontainer (int arg);
char uppercase()
{
return element;
}
};
template<typename T> mycontainer<T>::mycontainer(T arg){
cout << "hello T" << endl;
}
template<typename T> mycontainer<void>::mycontainer(int arg){
cout << "hello Empty" << endl;
}
int main() {
mycontainer<int> myint (7);
mycontainer<void> myvoid (6);
cout << myint.increase() << endl;
return 0;
}
コードは、これらのエラーを生成します。
test.cpp:31:22: error: prototype for ‘mycontainer<void>::mycontainer(int)’ does not match any in class ‘mycontainer<void>’
test.cpp:16:26: error: candidates are: mycontainer<void>::mycontainer(const mycontainer<void>&)
test.cpp:19:5: error: mycontainer<void>::mycontainer(int)
これらのエラーを解決する方法上の任意の手がかり?