Welche stabile c ++ 11-Funktion kann sicher verwendet werden [geschlossen]

8

Was sind die C++11 -Features, die genug ausgereift sind, um sicher in meinen Projekten verwendet werden zu können? Ich spreche von GCC hauptsächlich brauche ich selten Visual Studio. und ich möchte natürlich kein Feature in meinen Code aufnehmen, das nach einigen Monaten neu geschrieben werden muss. Und sollte ich diese Features auch gleich zu Beginn verwenden? Denn was auch immer wir tun, ist nicht c++11 dependent Wir können alle Dinge und alle Dinge auch in alten Schulmethoden machen. sollten wir also schon in dieser frühen Phase C ++ 11-Funktionen nutzen?

    
Neel Basu 19.10.2011, 19:40
quelle

2 Antworten

8

Der C ++ 11 Standard ist endlich fertig und veröffentlicht, so dass es keine Änderungen mehr geben wird. Implementierungen bleiben immer noch ein wenig zurück und können etwas ältere Versionen von C ++ 0x implementieren, aber Sie werden wahrscheinlich keinen großen Unterschied bemerken, wenn sie aktualisiert werden.

C ++ 11 ist nicht perfekt abwärtskompatibel, also sollten Sie als erstes mit der Entwicklung von C ++ 11-Kompatibilität beginnen. GCC hat eine Warnmeldung "-Wc ++ 0x-compat", um dabei zu helfen. Die Inkompatibilitäten sind ziemlich klein, aber das sollte alles aufwerfen, was ein Problem sein wird.

Eine große Inkompatibilität ist, dass der ABI von libstdc ++ sich mit dem Wechsel zu C ++ 11 ändert, also müssen Sie auch sicherstellen, dass Sie damit umgehen können.

Sobald Sie wissen, dass es sicher ist, sich zu bewegen, beginnen Sie einfach im C ++ 11-Modus zu bauen. Sie können allmählich alle C ++ 11-Funktionen übernehmen, die Ihnen nützlich erscheinen, wenn Sie neuen Code schreiben oder alten Code ändern. Sie sollten möglicherweise auch prüfen, ob veraltete Funktionen wie die alten Ausnahmenspezifikationen verwendet werden, und diese durch neue ersetzen.

Es gibt viele neue Sachen, also schaut euch den Standard an, wenn ihr ihn oder eine Dokumentation online bekommt. Ich finde, dass die meisten wirklich interessanten Dinge, die ich direkt verwenden möchte, in der Bibliothek sind. Leider scheint das der Punkt zu sein, an dem die aktuellen Implementierungen immer noch am meisten nacheilen.

    
bames53 19.10.2011, 20:14
quelle
0

Vielleicht möchten Sie Folgendes besuchen:

Ссылка

Dieser Link gibt C ++ 0x Support in verschiedenen GCC-Versionen.

Ich schlage vor, dass Sie jetzt C ++ 11 verwenden (fügen Sie einfach -std = c ++ 0x in die GCC-Befehlszeile ein). Wenn Sie Glück hatten, wurde in Ihrem Code nichts geändert. Selbst wenn Sie keine C ++ 11-Funktionen verwenden, können Sie dennoch von Leistungsverbesserungen profitieren, die von den Rvalue-Referenzen und der Bewegungssemantik kommen.

    
Yun Huang 20.10.2011 01:51
quelle

Tags und Links