boostorg / boostorg/multi_array
Return of bug#6554 (Compiler error dereferencing multi_array value via an iterator)
- Vorherrschende Sprache
- C++
- Sterne
- 32
- Forks
- 39
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
The bug described in https://svn.boost.org/trac10/ticket/6554 seems to return. I tried the example from this bug in godbolt: https://godbolt.org/z/4vMf8oo4q and it fails to compile. The code I used is:
```c++
#include
struct data
{
int value;
};
typedef boost::multi_array array_type;
int main() {
array_type a(boost::extents[4][5]);
// ERROR: Cannot compile this line
a.begin()->begin()->value = 7;
// Compiles successfully
(*a.begin()->begin()).value = 5;
return 0;
}
```
All versions of boost on godbolt (1.64 to 1.79) seem to be affected.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, den fehlschlagenden Ausdruck aus dem Issue mit boost/multi_array.hpp im verknüpften Godbolt-Beispiel zu reproduzieren, und vergleiche ihn anschließend mit der Dereferenzierungsform, die kompiliert. Untersuche den multi_array-Iteratorpfad, der an a.begin()->begin()->value beteiligt ist. Als erledigt gilt die Aufgabe, wenn der fehlschlagende Ausdruck kompiliert und den Wert wie gezeigt zuweist und eine Regressionstestabdeckung für dieses Beispiel vorhanden ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- cpp
- Bereich
- data
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 48/100