2011-12-07 13 views
0

私はvs2005で自分のコードをコンパイルしようとしています。 私がのstd ::マップを使用し、後押ししています:: shared_ptrの(v1.47.0) 私のコードは、コンパイラがステートメントのためにエラーを与えている。このstd :: mapをboost :: shared_ptrでコンパイルする際のエラー

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 
} 

ようになります。 次のエラー

エラーC2784です: '後押しBOOL ::演算子<(constのブースト:: & intrusive_ptr、constのブースト:: & intrusive_ptrを)':「constのブーストのためのテンプレート引数を推定できなかった:: & intrusive_ptr 'from' std :: _ Tree < _Traits> :: iterator '。

何か助けていただければ幸いです。 ありがとうございます。

答えて

1

mymap.end()との比較で誤った演算子を使用しています。ループを

for (it = mymap.begin(); it != mymap.end(); it++) 
に変更してください
関連する問題