Я хочу использовать QThreadSynchronizer в своем классе, например:
#ifndef _MULTIWATCHER
#define _MULTIWATCHER
#include <QThread>
#include <QFutureSynchronizer>
#include "globals.h"
class MultiWatcher : public QThread
{
Q_OBJECT
public:
signals:
void allDone();
public:
void run() override;
QFutureSynchronizer<FocusResult> _sync;
};
#endif
Однако, когда я пытаюсь построить это, я получаю следующие ошибки компоновки
1>C:\Qt\5.7\msvc2015_64\include\QtCore/qvector.h(134): error C2182: 'at':
illegal use of type 'void'
1>C:\Qt\5.7\msvc2015_64\include\QtCore/qvector.h(135): error C2182: '[]':
illegal use of type 'void'
1>C:\Qt\5.7\msvc2015_64\include\QtCore/qvector.h(136): error C2182: '[]':
illegal use of type 'void'
etc ...
На самом деле я получаюте же ошибки, если я закомментирую весь класс (то же самое, если QThreadSynchronizer заменяется на QFuture) и просто попытаюсь включить два включаемых файла, как будто QThread и QFuture / QThreadSynchronizer несовместимы друг с другом.Таким образом, следующее также не связывает!
#ifndef _MULTIWATCHER
#define _MULTIWATCHER
#include <QThread>
#include <QFuture>
#endif
Есть идеи?