我在以下结构上使用std :: find收到错误...
struct ComplianceOrderRecord {
explicit ComplianceOrderRecord(IOrder& order);
bool operator ==(const ComplianceOrderRecord& other) const;
double price;
};
inline bool ComplianceOrderRecord::operator ==(const ComplianceOrderRecord& other) const {
return price == other.price;
}
Run Code Online (Sandbox Code Playgroud)
我用它如下......
inline void Compliance::RemoveComplianceOrderRecord(const ComplianceOrderRecord& order) {
auto it = std::find(m_compliantOrderList.begin(),
m_compliantOrderList.end(), order);
if(it == m_compliantOrderList.end()) {
return;
}
m_compliantOrderList.erase(it);
}
Run Code Online (Sandbox Code Playgroud)
错误是......
error C2679: binary '==' : no operator found which takes a right-hand operand of type 'const ComplianceOrderRecord' (or there is no acceptable conversion)
Run Code Online (Sandbox Code Playgroud)
任何帮助理解这个错误将非常感激.
你operator==应该是const一个独立的职能,甚至更好.
| 归档时间: |
|
| 查看次数: |
917 次 |
| 最近记录: |