我想在vs2005中编译我的代码 . 我正在使用std :: map和boost :: shared_ptr(v1.47.0)我的代码看起来像这样
struct B {
int a;
}
typedef boost::shared_ptr<B> K;
std::map<const std::string, K > mymap;
//some code
std::map<const std::string, K >::iterator it;
for (it = mymap.begin(); it < mymap.end(); it++ )
{
//do something
}
编译器在for语句中给出错误 . 以下是错误
错误C2784:'bool boost :: operator <(const boost :: intrusive_ptr&,const boost :: intrusive_ptr&)':无法从'std :: _ Tree <_Traits>中推断'const boost :: intrusive_ptr&'的模板参数::迭代器” .
任何帮助表示赞赏 . 谢谢 .
1 回答
您正在使用错误的运算符来检查
mymap.end()
. 将循环更改为