Update for compatibility with C++20 iterator concepts
- Vorherrschende Sprache
- C++
- Sterne
- 23
- Forks
- 70
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
In C++20, forward iterators (and more advanced) no longer require the iterator reference type to be an actual reference. Instead, it is required that a reference can be formed to the reference type.
Since Boost.Iterator iterators still define their categories using C++03 rules, some iterators receive unnecessarily strict categories in terms of C++20. [Here](https://github.com/boostorg/iterator/issues/88#issuecomment-2447875807) is one example.
Perhaps, we should use C++20 rules for deducing iterator categories in C++20 and later and the current rules in C++17 and older.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, die Ableitung der Iterator-Kategorie von Boost.Iterator und die in diesem Issue beschriebenen C++20-Regeln zu überprüfen, und sieh dir anschließend das verlinkte Beispiel in Issue 88 an. Vergleiche das aktuelle auf C++03 basierende Verhalten mit C++20 und früheren Standards. Fertig ist die Änderung, wenn C++20 und spätere Versionen die neueren Regeln verwenden, während C++17 und ältere Versionen die bestehenden Regeln beibehalten.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- tooling
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100