我将方法的实现从我的类中移出,并遇到了以下错误:
use of class template requires template argument list
对于完全不需要模板类型的方法...(其他方法都可以)
类
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();
}
queue
的实例命名为queue
是不规范的,因为它让类型名称和实例名称很难区分开来。需要更好的命名约定以提高代码可读性。 - relaxxx