boostorg / boostorg/iterator

Update for compatibility with C++20 iterator concepts

Offen
#89 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.