Remarque: Il ne s'agit pas d'une question "Donnez votre avis" sur C ++ 03 et C ++ 11.
Notre moteur de jeu, écrit en C ++ 03, est conçu pour être compilé sur Windows, OSX et iOS. Le support Linux est prévu dans un (très) proche avenir. Notre expérience est limitée en ce qui concerne les consoles, c'est pourquoi je pose cette question.
Actuellement, nous discutons si le passage à C ++ 11 et l'utilisation de fonctionnalités non compatibles de la norme C ++ 11 pourraient poser un problème dans un avenir proche lorsque nous devons porter notre moteur sur l'une des consoles de génération actuelles (peut-être le Les compilateurs pris en charge par certaines consoles ne prennent pas encore en charge C ++ 11? Nous ne savons pas ...).
Donc, les développeurs de jeux qui ont de l'expérience sur plusieurs plates-formes et consoles, pensez-vous que nous devrions nous en tenir au C ++ 03 jusqu'à ce que la nouvelle génération de consoles arrive et que la plupart des gens soient passés au standard C ++ 11 (l'ont-ils déjà?). Ou la plupart des consoles utilisent-elles / prennent-elles en charge des compilateurs (VC ++, GCC ou variantes?) Qui prennent déjà en charge les fonctionnalités C ++ 11?
la source
Réponses:
Si vous comptez sur votre code pour payer la nourriture et le logement, et que vous devez prendre en charge multiplateforme sur des plates-formes futures inconnues (ou que vous pourriez raisonnablement avoir besoin de prendre en charge multiplateforme à l'avenir), alors concevoir votre code pour s'appuyer sur un une adhésion correcte des auteurs de compilateurs inconnus aux normes linguistiques de pointe est dangereuse (et je dirais, irresponsable). C'est dangereux pour vous, et donc aussi dangereux pour vos personnes à charge.
Si vous êtes prêt à prendre ce genre de risque pour le plaisir
auto
, alors allez-y. Mais je ne vais pas vous conseiller de le faire.Parce que, selon mon expérience, il est préférable d' aller sur plusieurs plates-formes, en particulier sur les consoles , en visant le plus petit dénominateur commun dont vous pouvez être sûr qu'il fonctionnera pratiquement partout, et non en s'appuyant sur toutes les dernières fonctionnalités du langage Whiz-Bang. Si un jour vous avez besoin de porter sur une plate-forme qui ne les prend pas en charge, vous devez réécrire vos systèmes à partir de zéro. Pouvez-vous vous permettre de payer un salaire / loyer pendant que cela se produit?
la source
Si vous êtes prêt à faire un peu plus de travail, vous pourriez envisager des solutions de réfraction. clang a actuellement des choses intéressantes qui se passent dans ce domaine. Il devrait être possible d'utiliser le mot clé auto, de l'exécuter via le refactorer qui en trouvera toutes les utilisations, de les résoudre pour vous et de générer le code, puis de le compiler avec ce que vous voulez.
Mais cela signifie moins de temps pour travailler sur votre jeu.
Il existe également le potentiel de certaines fonctionnalités supplémentaires, par exemple la réflexion. Vous pouvez créer une classe et générer automatiquement une liste de toutes les propriétés à inspecter lors de l'exécution. Cela pourrait être très utile pour l'écriture de scripts, la production d'éditeurs de jeux, etc. EDIT: Découvrez 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
la source
2to3
mais en sens inverse et beaucoup plus génial mais probablement plus difficile à utiliser. Mec, que faire de mieuxauto
?