我正在使用一個Visual Studio項目(v120編譯器),它使用std ::線程從GUI除了從USB設備讀取,並且該函數會引發錯誤:「Error C2661「的std ::螺紋::線程」:這裏沒有重載函數接受3個參數」std ::線程初始化構造函數給出編譯錯誤
代碼:
class IOThread
{
public:
IOThread(DeviceHandler *handle) : _handle(handle)
~IOThread();
std::thread *getThread(ThreadType type);
template <typename T>
void execRead(std::list<T> *dataStack)
{
std::thread *thread = getThread(Read);
if (thread == NULL)
{
thread = new std::thread(&DeviceHandler::readFromBus, _handle, dataStack);
_threadPool.push_back(std::make_pair(Read, thread));
}
}
private:
DeviceHandler *_handle;
std::vector<std::pair<ThreadType, std::thread *>> _threadPool;
};
而且,DeviceHandler是一個抽象類,它定義了純虛readFromBus功能,它的原型是以下
template <typename T>
void readFromBus(std::list<T> *dataStack) = 0;
我希望你不要有相同的頭痛,因爲我做的,而解決這個爛攤子...... 問候,
您是否故意切斷ctor機體? – Glapa
您使用的是什麼版本的MSVS? 'DeviceHandler :: readFromBus'的簽名是什麼? – NathanOliver
@NathanOliver他正在通過'_handle' ... –