bereichsbezogen für mehrdimensionale Arrays

Mein Embedded-System hat eine C ++ 11-fähige Version von g ++, daher habe ich Code von bereinigt

for( uint16_t* p = array; p < (&array)[1]; ++p ) {
    *p = fill_value;
}

zu

for( uint16_t& r : array ) {
    r = fill_value;
}

welches istviel lesbarer.

Gibt es eine bereichsbasierte for-Schleife, die über alle Elemente von arbeitet?array2[m][n]?

Die alte Version ist

for( int16_t* p = array2[0]; p < (&array2)[1][0]; ++p ) {
    *p = fill_value;
}

und ich möchte keine verschachtelten Schleifen, es sei denn, es ist garantiert, dass der Compiler sie abflacht.

(FWIW, der Compiler ist der GNU 4.7.4 Linaro g ++ ARM-Cross-Compiler, der im Lieferumfang von TI Code Composer Studio 6.0.0 enthalten ist.)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage