相关疑难解决方法(0)

与模板类成为朋友:编译错误

我正在尝试使用“实现指针”来掩盖我正在使用Concurrency :: unbounded_buffer(来自VC ++ 2010)的事实。问题是,我正在使用模板执行此操作,并陷入了编译错误。这是代码:

BlockingQueue.h

#pragma once

namespace DRA{
namespace CommonCpp{
    //Forward declaration
    template <class Element> class BlockingQueueImpl;

    template <class Element>
    class BlockingQueue{
        BlockingQueueImpl<Element>* m_pImpl;
    //Forbid copy and assignment
        BlockingQueue( const BlockingQueue& );
        BlockingQueue& operator=( const BlockingQueue& );
    public:
        BlockingQueue();
        ~BlockingQueue();
        void Push( Element newElement );
        Element Pop();
    };
}
}
Run Code Online (Sandbox Code Playgroud)

BlockingQueue.cpp

#include "BlockingQueue.h"
#include "BlockingQueueImpl.h"

using namespace DRA::CommonCpp;

BlockingQueue<class Element>::BlockingQueue():
    m_pImpl( new BlockingQueueImpl<Element>() ){
}

BlockingQueue<class Element>::~BlockingQueue(){
    //Let the implementation's destructor handle pending Pops
    delete m_pImpl;
}

template<class …
Run Code Online (Sandbox Code Playgroud)

c++ templates compiler-errors friend

2
推荐指数
1
解决办法
1940
查看次数

标签 统计

c++ ×1

compiler-errors ×1

friend ×1

templates ×1