Ich frage mich, ob das neue C++ (das C++11 hieß) gut mit der eingebetteten Elektronik und deren Programmierung funktioniert. Passen die neuen Features gut zur Arbeit mit uC? Wie R-Werte und so weiter? Oder sollte mit dem traditionellen und alten C++ eingeschränkt werden?
Es ist nicht C++11 oder C++ im alten Stil, genauso wie es nicht nur C oder C++ ist, das alle seine Funktionen verwendet. Ich liebe es, C++ zu verwenden, aber ich hasse bestimmte Aspekte davon. (Dies ist nicht C++-spezifisch, obwohl es Sprachen gibt, die ich ausnahmslos hasse.) Nehmen Sie die guten Teile (nachdem Sie überprüft haben, ob sie anständig implementiert sind), überlassen Sie den Rest anderen oder für später.
Ich habe noch keine C++11-Spezifika verwendet (meine Lektionen für dieses Quartal sind C++ auf NDS mit devkitPro, das einen alten gcc hat). Aber eine einfache Funktion, auf die ich mich freue, ist die automatisch typisierte Variable. Angenommen, Sie möchten verschiedene Arten von Objekten (alle Unterklassen einer Basisklasse) erstellen, abhängig von den Typen der 'Konstruktor'-Parameter. Sie können Konstruktoren verschiedener Klassen nicht überladen, aber Sie können verschiedene Funktionen überladen, die unterschiedliche Arten von Klassen zurückgeben. Aber um die Ergebnisse zu speichern, müssen Sie sich entweder den genauen Typ merken, den sie zurückgeben (was meiner Meinung nach das Fabrikmuster verdirbt), oder sie alle einen Zeiger auf den Basisklassentyp zurückgeben lassen (was die Heap-Verwaltung in Ihre Anwendung zieht, was ich zu vermeiden versuche). . Mit der Auto-Funktion können Sie tun
a_very_long_and_difficult_to_remember_class f( int x );
an_equaly_difficult_to_remember_class f( char *p );
auto x = f( 12 );
auto y = f( "hello" );
Für mich bedeutet das, dass ein attraktives Muster plötzlich sehr einfach zu handhaben ist.
Ignacio Vazquez-Abrams
m.Alin
Benutzer8459
Raketenmagnet
WütendEE
Siraj Muhammad
David Norman
Connor Wolf