Hinweis: Dies ist keine Frage, bei der Sie Ihre Meinung zu C ++ 03 und C ++ 11 äußern.
Unsere in C ++ 03 geschriebene Spiele-Engine ist für die Kompilierung unter Windows, OSX und iOS ausgelegt. Linux-Support ist für die (sehr) nahe Zukunft geplant. Unsere Erfahrung mit Konsolen ist begrenzt, weshalb ich diese Frage stelle.
Derzeit diskutieren wir, ob der Wechsel zu C ++ 11 und die Verwendung nicht kompatibler Funktionen des C ++ 11 - Standards in naher Zukunft ein Problem darstellen könnte, wenn wir unsere Engine auf eine der aktuellen Konsolen (möglicherweise die C ++ 11 - Konsole) portieren müssen Compiler, die von einigen Konsolen unterstützt werden, unterstützen C ++ 11 noch nicht? Wir wissen nicht ...).
Also, Spieleentwickler, die Erfahrung mit mehreren Plattformen und Konsolen haben, denken Sie, wir sollten bei C ++ 03 bleiben, bis die neue Generation von Konsolen ankommt und fast jeder auf den C ++ 11-Standard umgestiegen ist (oder schon?). Oder verwenden die meisten Konsolen / Support-Compiler (VC ++, GCC oder Varianten?), Die bereits C ++ 11-Funktionen unterstützen?
quelle
Antworten:
Wenn Sie sich bei der Bezahlung von Lebensmitteln und Unterkünften auf Ihren Code verlassen und plattformübergreifende Unterstützung auf unbekannten zukünftigen Plattformen benötigen (oder vernünftigerweise in Zukunft plattformübergreifende Unterstützung benötigen), müssen Sie Ihren Code so gestalten, dass er sich auf a stützt Die korrekte Einhaltung der neuesten Sprachstandards durch unbekannte Compiler-Autoren ist gefährlich (und ich würde argumentieren, unverantwortlich). Es ist gefährlich für Sie und daher auch gefährlich für Ihre Angehörigen.
Wenn Sie bereit sind, ein solches Risiko einzugehen
auto
, gehen Sie es auf jeden Fall an. Aber ich werde dir nicht raten, es zu tun.Meiner Erfahrung nach ist plattformübergreifendes Arbeiten , insbesondere auf Konsolen , am besten möglich, wenn Sie den kleinsten gemeinsamen Nenner anstreben, von dem Sie sicher sind, dass er praktisch überall funktioniert, und nicht, wenn Sie sich auf die neuesten Sprachfunktionen von Whiz-Bang verlassen. Wenn Sie eines Tages auf eine Plattform portieren müssen, die diese nicht unterstützt, müssen Sie Ihre Systeme von Grund auf neu schreiben. Können Sie es sich leisten, währenddessen Löhne / Mieten zu zahlen?
quelle
Wenn Sie bereit sind, ein bisschen mehr zu arbeiten, könnten Sie sich nach Refraktärlösungen umsehen. clang hat momentan einige interessante Sachen in diesem Bereich zu bieten. Es sollte möglich sein, das Schlüsselwort auto zu verwenden, es über den Refactorer auszuführen, der alle Verwendungszwecke findet, sie für Sie auflöst und den Code ausgibt. Kompilieren Sie ihn dann mit den gewünschten Informationen.
Das bedeutet aber weniger Zeit, um an deinem Spiel zu arbeiten.
Es gibt auch das Potenzial für einige zusätzliche Funktionen, z. B. Reflexion. Sie können eine Klasse erstellen und automatisch eine Liste aller Eigenschaften generieren, die zur Laufzeit überprüft werden sollen. Könnte sehr nützlich sein, um Skripte zu schreiben, Spieleditoren zu erstellen und so weiter. BEARBEITEN : Überprüfen Sie clreflect .
http://cppnow.org/session/refactoring-c-with-clang/
http://www.youtube.com/watch?v=mVbDzTM21BQ
http://clang.llvm.org/docs/Tooling.html
http://clang.llvm.org/docs/RAVFrontendAction.html
quelle
2to3
aber umgekehrt und viel fantastischer, aber wahrscheinlich schwieriger zu bedienen. Mann, wie viel besser kannauto
es sein?