@@ -371,6 +371,12 @@ namespace BinaryNinja
371371 {
372372 struct ListIterator
373373 {
374+ typedef std::forward_iterator_tag iterator_category;
375+ typedef uint64_t value_type;
376+ typedef std::ptrdiff_t difference_type;
377+ typedef void pointer;
378+ typedef value_type reference;
379+
374380#ifdef BINARYNINJACORE_LIBRARY
375381 LowLevelILFunction* function;
376382 const BNLowLevelILInstruction* instr;
@@ -410,6 +416,12 @@ namespace BinaryNinja
410416 {
411417 struct ListIterator
412418 {
419+ typedef std::forward_iterator_tag iterator_category;
420+ typedef size_t value_type;
421+ typedef std::ptrdiff_t difference_type;
422+ typedef void pointer;
423+ typedef value_type reference;
424+
413425 LowLevelILIntegerList::const_iterator pos;
414426 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
415427 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -444,6 +456,12 @@ namespace BinaryNinja
444456 {
445457 struct ListIterator
446458 {
459+ typedef std::forward_iterator_tag iterator_category;
460+ typedef std::pair<uint64_t , size_t > value_type;
461+ typedef std::ptrdiff_t difference_type;
462+ typedef void pointer;
463+ typedef value_type reference;
464+
447465 LowLevelILIntegerList::const_iterator pos;
448466 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
449467 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -479,6 +497,12 @@ namespace BinaryNinja
479497 {
480498 struct ListIterator
481499 {
500+ typedef std::forward_iterator_tag iterator_category;
501+ typedef LowLevelILInstruction value_type;
502+ typedef std::ptrdiff_t difference_type;
503+ typedef void pointer;
504+ typedef value_type reference;
505+
482506 LowLevelILIntegerList::const_iterator pos;
483507 size_t instructionIndex;
484508 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
@@ -516,6 +540,12 @@ namespace BinaryNinja
516540 {
517541 struct ListIterator
518542 {
543+ typedef std::forward_iterator_tag iterator_category;
544+ typedef RegisterOrFlag value_type;
545+ typedef std::ptrdiff_t difference_type;
546+ typedef void pointer;
547+ typedef value_type reference;
548+
519549 LowLevelILIntegerList::const_iterator pos;
520550 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
521551 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -550,6 +580,12 @@ namespace BinaryNinja
550580 {
551581 struct ListIterator
552582 {
583+ typedef std::forward_iterator_tag iterator_category;
584+ typedef SSARegister value_type;
585+ typedef std::ptrdiff_t difference_type;
586+ typedef void pointer;
587+ typedef value_type reference;
588+
553589 LowLevelILIntegerList::const_iterator pos;
554590 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
555591 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -585,6 +621,12 @@ namespace BinaryNinja
585621 {
586622 struct ListIterator
587623 {
624+ typedef std::forward_iterator_tag iterator_category;
625+ typedef SSARegisterStack value_type;
626+ typedef std::ptrdiff_t difference_type;
627+ typedef void pointer;
628+ typedef value_type reference;
629+
588630 LowLevelILIntegerList::const_iterator pos;
589631 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
590632 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -620,6 +662,12 @@ namespace BinaryNinja
620662 {
621663 struct ListIterator
622664 {
665+ typedef std::forward_iterator_tag iterator_category;
666+ typedef SSAFlag value_type;
667+ typedef std::ptrdiff_t difference_type;
668+ typedef void pointer;
669+ typedef value_type reference;
670+
623671 LowLevelILIntegerList::const_iterator pos;
624672 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
625673 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -655,6 +703,12 @@ namespace BinaryNinja
655703 {
656704 struct ListIterator
657705 {
706+ typedef std::forward_iterator_tag iterator_category;
707+ typedef SSARegisterOrFlag value_type;
708+ typedef std::ptrdiff_t difference_type;
709+ typedef void pointer;
710+ typedef value_type reference;
711+
658712 LowLevelILIntegerList::const_iterator pos;
659713 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
660714 bool operator !=(const ListIterator& a) const { return pos != a.pos ; }
@@ -1227,6 +1281,12 @@ namespace BinaryNinja
12271281 {
12281282 struct ListIterator
12291283 {
1284+ typedef std::forward_iterator_tag iterator_category;
1285+ typedef LowLevelILOperand value_type;
1286+ typedef std::ptrdiff_t difference_type;
1287+ typedef void pointer;
1288+ typedef value_type reference;
1289+
12301290 const LowLevelILOperandList* owner;
12311291 _STD_VECTOR<LowLevelILOperandUsage>::const_iterator pos;
12321292 bool operator ==(const ListIterator& a) const { return pos == a.pos ; }
0 commit comments