Arduino und C++11

Hallo,

habe mir ein Buch zum Thema C++ gekauft und musste feststellen, dass die Neuerungen von C++11 noch nicht in der Arduino-Software implementiert zu sein scheinen.

Kann mir jmd. sagen, ob die Implementierung dieser Neuerungen noch folgen wird?

Gruß Chris

Das liegt am Compiler und an der avr libc. Du brauchst mindestens Version 1.5.7. Darin wurde endlich die antike AVR Toolchain aktualisiert.

Dann musst du das nur noch dem Compiler mitteilen. Dazu öffnest du \Arduino\hardware\arduino\avr\platforms.txt und editierst diese Zeile:

compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -std=gnu++11

Einfach das -std=gnu++11 hinzufügen

Die Features die von der avr Software unterstützt werden sind hier: https://gcc.gnu.org/gcc-4.8/cxx0x_status.html

Danke schonmal für die Infos.

Auf dem Mac scheint das so jedoch zunächst einmal nicht zu funktionieren, da es innerhalb von Arduino per "Paketinhalt zeigen" den Ordner hardware nicht zu geben scheint.

Bin grad mal testweise am Xcode installieren. Vielleicht hilfts ja.

Gruß Chris

Muss leider noch einmal nerven.

Ich hab Xcode zwar jetzt installiert, kann aber in den Weiten des Internets nicht über das aktualisieren der Arduino-Software mit C++11 [u]unter Mac OS[/u] finden.

Gruß Chris

Ich habe mir mal die Mac Zip Datei runtergeladen.

Da gibt es doch klar Arduino.app\Contents\Resources\Java\hardware\arduino\avr
Und darin ist die platform.txt

Bei mir fehlt der Ordner avr, wenn ich die Arduino-Software frisch von deren Seite lade. :drooling_face:

Gruß Chris

Versuchst du das etwa mit 1.0.x oder was ähnlichem?

Du brauchst wie gesagt 1.5.7 oder 1.5.8. Es geht hierum: http://arduino.cc/en/Main/ReleaseNotes

  • Upgraded AVR toolchain: gcc 4.8.1, avr-libc 1.8.0

Serenifly: Versuchst du das etwa mit 1.0.x oder was ähnlichem?

Ja. :-*

Ich versuchte es zunächst mit 1.0.5 und nun mit 1.0.6, bevor ich endlich geblickt habe, dass es da auch noch diverse Beta-Versionen gibt. Danke herzlich für den Hinweis.

Kann man denn da trotz des Betastatus bedenkenlos zugreifen? :roll_eyes:

Gruß Chris

Ja. Habe damit bisher keine Probleme gehabt. Und es gibt einige andere Verbesserungen, z.B. in der Serial Klasse.

Es ist ja nicht so dass 1.0.x frei von Fehlern wäre. Bei weitem nicht.

Hab mal nach Gründen gefragt, was gegen 1.5.x sprechen könnte, und für meinen Geschmack mehr Empfehlungen für die neue gekriegt.