我有一個類ConfigFile實現具有用於SVMParams成員吸氣:如何爲cv :: SVMParams修復丟棄限定符[-fpermissive]?
cv::SVMParams gerSVMParams()
{
return *m_mapConfig["SVMParams"];
}
的代碼是更復雜一點。 m_mapConfig
是
std::map<std::string, std::unique_ptr<IConfigItem> >
而且IConfigItem
是一個模板類,看起來像這樣的SVMParams
:
template<> class ConfigItem<cv::SVMParams> : public IConfigItem
{
private:
cv::SVMParams m_value;
public:
ConfigItem(const cv::SVMParams& valueIn) : m_value(valueIn) {}
operator cv::SVMParams() const
{
return m_value;
}
};
我的問題是,當我試圖自動訓練SVM分類:
classifier.train_auto(trainingData, classes, cv::Mat(), cv::Mat(), configFileIn.getSVMParams());
我收到種類的錯誤:
error: passing ‘const ConfigFile’ as ‘this’ argument of ‘cv::SVMParams ConfigFile::getSVMParams()’ discards qualifiers [-fpermissive]
的什麼,我做錯了什麼建議?或者是有一個小錯誤,因爲train_auto
函數在SVMParams
參數前沒有const。還是它在修改它?
順便說一句,你似乎使用主分支的過時版本?它在今年夏天進行了一次重大的重構。 – berak 2014-11-24 16:20:19
是的,我知道有OpenCV 3.0.0測試版,但我並不是真的想改變所有的應用程序,因爲有一個重大的改變。 – sop 2014-11-24 16:24:10
^^理解。實際上,代碼看起來完全不同。 – berak 2014-11-24 16:25:26