TriHexagon schrieb:
> - STL (Standard Template Library)
ist gar nicht für AVR verfügbar
> - Mehrfachvererbung
kann man einsetzen
> - Virtuelle Methoden (muss man fallweise entscheiden, zumindest bei
> avr-gcc umständlich)
er zielt wohl darauf ab, dass die vtable ins RAM kopiert wird und dort
je Typ mindestens 12 Byte belegt und für Funktionsaufrufe eine
zusätzliche Indirektion hinzu kommt
> - Allzu verrückte oder neue Features wie
> + Verschachtelte Klassen
> + Automatische Typerkennung (auto-Schlüsselwort)
> + Laufzeit-Typprüfung
> + Anonyme Funktionen (Lambda-Ausdrücke)
Blödsinn
> - new- und delete-Operator (Speicherverwaltung allgemein)
nicht für AVR target implement.
> Bis auf zwei Punkte finde ich die Liste in Ordnung, aber verstehe nicht
> was "Automatische Typerkennung" und "Anonyme Funktionen" darin zu suchen
> haben.
s.o, gehört m.E. auch nicht in diese Liste
> Type Inheritance
Du meinst "type inference"
> ist nur für den Compiler interessant, ob ich das
> Programm für x86 oder AVR schreibe macht da keinen Unterschied. Am
> Kompilat ist nicht zu erkennen, ob dieses Feature eingesetzt wurde.
Gilt generell: in asm gibt es keine DT mehr.
> Anonyme Funktionen dürften zur Laufzeit kaum einen Unterschied machen.
> Der Compiler kann daraus einfach eine Funktion machen, die er normal
> übersetzt, nur hat sie halt sozusagen keinen ansprechbaren Namen.
> Overhead ist nur der Funktionszeiger der vom Aufrufenden benötigt wird.
> Das ist aber nicht viel und wenn anonyme Funktionen in dem Fall nützlich
> sind, dann kommt man ohne Funktionszeiger wahrscheinlich auch nicht aus.
> Ich weiß zwar nicht mit Sicherheit, ob der avr-g++ das so umsetzt,
> wüsste aber nicht, wieso er das nicht so machen sollte.
lambda-expressions sind ein sehr gutes Feature, gerade für den Einsatz
auf µC und auch für den Einsatz im Zusammenhang mit templates und TMP.
> Täusche ich mich an einem Punkt oder wie ist der Autor zu seiner Aussage
> gekommen? Ich kann mir das nur erklären, dass die Aussagen aus einer
> Zeit kommen, als der avr-g++ noch kein C++11 konnte.
Manches sind eben Mythen, die immer wieder kolportiert werden, aber
damit nicht richtiger ...