error c2678 <

 

场景:定义了一个结构体A,然后std::map<A, B> m;

报错:error c2678:二进制"<",没有找到接受"const A"类型的左操作数运算符(或没有可接受的转换)

原因:重载 "<",参数列表后面没有加const

解决:参数列表后面加const

bool operator < (const A& v) const
{
    ...
}

注:如果不重载"<",会报很多error c2784 无法推导参数模板 错误

 

posted @ 2021-10-27 15:36  _KikyoBK  Views(109)  Comments(0Edit  收藏  举报