Am 12.08.2019 um 10:29 schrieb Thomas Koenig:
> In C++ gibt es seit C++17 einen interessanten Unterschied zwischen
> (p sei ein Pointer-Ausdruck und i ein Integer-Ausdruck) zwischen
> *(p + i) und p[i]. Im ersten Fall ist nämlich nicht definiert,
> was zuerst ausgeführt wird, im zweiten Fall kann man sich
> drauf verlassen, dass p (einschließlich Seiteneffekten) zuerst
> ausgeführt wird, anschließend erst i.
Ich wusse das bisher nicht, danke.
Am Ende vergrößert das aber wieder nur die Menge von wohldefinierten
C++-Programmen, die keine wohldefinierten C-Programme sind.
Andererseits ist es schwer zu erkennen, ob ein Programm sich darauf
verlässt, was die Auswahl der Toolchain erschwert. Ich kaue ja immer
noch daran, meine alte historisch gewachsene Build-Infrastruktur auf
eine gescheite CI-Pipeline mit C++14 umzustellen (neuer Compiler = neue
Dependencies), solange hängt mein Privatgerümpel auf C++03 fest. Mal
sehen, wann ich soweit bin, da einfach einen C++17-Compiler drauf werfen
zu können, und problemlos Binaries für alle Plattformen rauszubekommen...
Stefan