ESP8266 core 3.0 und FastLED

Hallo,

da wurde wohl die Toolchain aktualisiert und nun wird C++17 verwendet. Was ein begrüßenswerter Schritt ist. Zieht leider immer einen Rattenschwanz nach sich. Das Keyword register ist deprecated. Noch wird es mit C++17 geduldet, deswegen die Warnung. Allerdings sollte Daniel seine Lib überarbeiten. Im Grunde sind alle Lib Programmierer gefordert ihre Libs anzupassen. Code ist nie fertig, er benötigt ständig Pflege. Damit muss man als Programmierer leben.

Anderes Bsp. Mit aktueller Toolchain und C++20 muss ich zum Bsp. die USART.h anpassen. Weil man verschiedene enums nicht mehr vermischen darf. Ich habe mir erstmal mit einem cast beholfen. Klingt erstmal total doof, gebe ich zu. Dient aber alles der Programmiersicherheit. Man müßte jetzt die USART Lib überdenken und neu aufbauen, sonst erliegt man der Versuchung nur irgendwelche kurzfristigen Tricks anzuwenden damit der Compiler Ruhe gibt. Bis Arduino aber auf C++20 wechselt fließt noch viel Wasser die Elbe runter ... und die meisten Leute wird es gar nicht interessieren. Arduino ist immer noch auf Stand C++11. Könnte man ändern auf C++14 oder gar C++17. Wobei erst gcc 9.4.0 zu 100% C++17 unterstützt. Sprich der C++17 Standard wurde erst in gcc 9.4.0 komplett umgesetzt. Alle Versionen darunter unterstützen den auch, die letzten Winkel könnten aber fehlen, wem das wichtig ist.

Ich weiß jedoch nicht ob für den ESP überhaupt der gcc verwendet wird. :wink:

Bevor das falsch verstanden wird. Den Standard C++n darf man nicht verwechseln mit der Toolchain/Compiler. Der Standard gibt die Dinge vor. Diese müssen in der Toolchain/Compiler umgesetzt werden. Die obige register Warnung betrifft demzufolge alle Toolchains die C++17 unterstützen.