a を aに変換するように一部のコードを変更しstd::set
ましたboost::ptr_set
。ただし、コードはコンパイルされません。問題は、挿入からの戻り値が挿入 (a )ptr_set
と同じであると想定していることです。Google で 1 時間後、これを見つけました。挿入からの戻り値がbool のように見えることがわかりました。set
pair<myIter, bool>
ptr_set
ptr コンテナーと std コンテナーの違いに関する決定的なドキュメントはありますか? ブースト Web サイトで何も見つかりませんでしたが、単に私が愚かなだけかもしれません...
編集
わかりました-私を混乱させたのは、このコード
t.insert(s.release(s.begin()));
p = t.insert(s.release(s.begin()));
gcc の 1 行目にはエラーが報告されていませんがoperator=
、2 行目には一致が報告されていないため、エラーは戻り値の型にあると考えられました。ただし、2 行目をコメントアウトすると、1 行目がエラーとして報告されます (release はイテレータを返しません)。私の混乱は、私が投稿したリンクによってさらに悪化しました. ただし、リンクを読んでみると、その時点でコードが完成していなかったことが明らかになります。ありがとうケレック。