использование шаблона класса требует списка аргументов шаблона

Я переместил реализацию методов из своего класса и обнаружил следующую ошибку:

use of class template requires template argument list

для метода whitch вообще не требуется тип шаблона … (для других методов все в порядке)

Учебный класс

template<class T>
class MutableQueue
{
public:
bool empty() const;
const T& front() const;
void push(const T& element);
T pop();

private:
queue<T> queue;
mutable boost::mutex mutex;
boost::condition condition;
};

Неправильная реализация

template<>   //template<class T> also incorrect
bool MutableQueue::empty() const
{
scoped_lock lock(mutex);
return queue.empty();
}

21

Решение

Так должно быть:

template<class T>
bool MutableQueue<T>::empty() const
{
scoped_lock lock(mutex);
return queue.empty();
}

А если ваш код такой короткий, просто вставьте его, так как вы все равно не можете отделить реализацию и заголовок класса шаблона.

38

Другие решения

Использование:

template<class T>
bool MutableQueue<T>::empty() const
{
...
}
6

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector