我只是無法得到QtConcurrent ::運行與重載靜態方法工作:QtConcurrent ::重載的靜態方法運行
class Foobar {
public:
static ResType foo(const cv::Mat& data, const QStringList& names, int clusters = 5);
static ResType foo(const cv::Mat& data, const cv::TermCriteria& tc, const QStringList& names, const QStringList& otherNames, int clusters, int covType = 2);
}
QtConcurrent::run(
static_cast<ResType (*)(const cv::Mat&, const cv::TermCriteria&,
const QStringList&, const QStringList&, int, int)>(&Foobar::foo),
sampleData, tc, mDimNames, mGmmNames, mClusterN, mCovType);
我得到:
error: no matching function for call to ‘run(ResType (*)(const cv::Mat&, const cv::TermCriteria&, const QStringList&, const QStringList&, int, int), cv::Mat&, cv::TermCriteria&, QStringList&, QStringList&, int&, int&)’ sampleData, tc, mDimNames, mGmmNames, mClusterN, mCovType);
注裁判(& )在整數參數的錯誤消息中。這令我感到困惑....
類型則params的:
cv::Mat sampleData, cv::TermCriteria tc, QStringList mDimNames, QStringList mGmmNames, int mClusterN, int mCovType
我以爲的static_cast將與區分重載幫助。我能看到的唯一區別是,參數部分不是常量。但你可以採取一個值類型參數,所以爲什麼會這麼重要...
您的問題中的代碼是原件和您爲發佈而編輯的代碼的混合,盡我所能猜到。 ('DkGmm'或'Foobar'?'Foobar'在命名空間'bla'中?)使它一致可以幫助理解正在發生的事情。 –
對不起,我修正了它 –