8

ZipStreamライブラリをコンパイルしようとしていますが、これは効果的に zlib の C++ ラッパーです。

現在、次の 2 行で 2 つのコンパイル エラーが発生しています。

std::set<file_info_32*, sort_by_offset>::iterator first  = _core->_entries_by_name.begin();
std::set<file_info_32*, sort_by_offset>::iterator last   = _core->_entries_by_name.end();

エラーは次のとおりです。

エラー 15 エラー C2440: 'initializing': c:\users\ahakeem\desktop\zipstream\ziparchive.cpp 423 1 zipstream
'std::_Tree_const_iterator<_Mytree>'に変換できません エラー 16 エラー C2440: : c:\users\ahakeem\desktop\zipstream\ziparchiveに変換できません 。 cpp 424 1 ジップストリーム
'std::_Tree_const_iterator<_Mytree>'
'initializing'
'std::_Tree_const_iterator<_Mytree>'
'std::_Tree_const_iterator<_Mytree>'

'std::_Tree_const_iterator<_Mytree>'したがって、基本的にコンパイラは、からに変換できないと言っています'std::_Tree_const_iterator<_Mytree>'

なぜそれが起こっているのか、どのように修正するのかについてのアイデアはありますか?

_core->entries_by_name.begin()編集: さらに調査した結果、が として宣言されていることがわかりました'std::set<file_info_32*, sort_by_offset>'。これは、イテレータが ( ) に割り当てようとしているものと明らかに矛盾していますstd::set<file_info_32*, sort_by_offset>

担当者が取得することを期待しているものと型が一致して_core->_entries_by_offset.begin();いるため、機能するように切り替えることができます。_entries_by_offset

これは、誰かがコードを壊し、気付かずにソース リポジトリにアップロードした可能性があるということですか? それとも、この誤った代入のシナリオは実際に一部のシステムでコンパイルできますか?

4

1 に答える 1

4

私の最善の推測では、代用されるクラス_MyTreeは異なります。

with _MyTree = SomeClassエラーのすぐ下の出力内のどこかを探します。

于 2011-11-29T02:19:21.333 に答える