为什么这段代码会出现这个错误?我不是要进行明确的专业化。这是在 Visual Studio 2012 Desktop Express 中。
错误 C2906:“T *testTemplate::popNoWait(int *)”:显式特化需要“模板 <>”
template <class T> class testTemplate
{
public:
T *pop(int timeout_ms);
T *popNoWait(int *remaining = NULL);
};
T *testTemplate<class T>::pop(int timeout_ms)
{
return popNoWait();
}
T *testTemplate<class T>::popNoWait(int *remaining)
{
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
这不是您从类模板中定义事物的方式。你必须先有template<>语法:
template <class T>
T *testTemplate<T>::pop(int timeout_ms)
{
return NULL;
}
template <class T>
T *testTemplate<T>::popNoWait(int *remaining)
{
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |