错误:"explicit specialization requires 'template <>'"

error: "explicit specialization requires 'template <>'"

本文关键字:lt gt template requires explicit specialization 错误      更新时间:2023-10-16

为什么此代码会出现此错误?我不想做明确的专业化。这在Visual Studio 2012 Desktop Express中。

错误C2906:"T*testTemplate::popNoWait(int*)":显式专业化需要"template<>'

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;
}

这不是从类模板中定义事物的方式。您必须首先拥有template<>语法:

template <class T>
T *testTemplate<T>::pop(int timeout_ms)
{
    return NULL;
}
template <class T>
T *testTemplate<T>::popNoWait(int *remaining)
{
    return NULL;
}