Nota: Esta no es una pregunta para dar su opinión sobre C ++ 03 y C ++ 11.
Nuestro motor de juegos, escrito en C ++ 03, está diseñado para compilarse en Windows, OSX e iOS. El soporte de Linux está planeado para el (muy) futuro cercano. Nuestra experiencia es limitada cuando se trata de consolas, por eso estoy haciendo esta pregunta.
Actualmente, estamos debatiendo si cambiar a C ++ 11 y usar características no compatibles del estándar C ++ 11 podría plantear un problema en el futuro cercano cuando necesitemos portar nuestro motor a cualquiera de las consolas de generación actuales (quizás el ¿Los compiladores compatibles con algunas consolas todavía no son compatibles con C ++ 11? No lo sabemos ...).
Entonces, los desarrolladores de juegos que tienen experiencia en múltiples plataformas y consolas, ¿creen que deberíamos seguir con C ++ 03 hasta que llegue la nueva generación de consolas y la mayoría de todos hayan cambiado al estándar C ++ 11 (¿ya lo han hecho?). ¿O la mayoría de las consolas utilizan / admiten compiladores (VC ++, GCC o variantes) que ya son compatibles con las funciones de C ++ 11?
fuente
Respuestas:
Si confía en su código para pagar alimentos y refugio, y necesita soporte multiplataforma en plataformas futuras desconocidas (o razonablemente podría necesitar soporte multiplataforma en el futuro), entonces diseñe su código para confiar en un La adherencia correcta de muchos escritores de compiladores desconocidos a los estándares de lenguaje de vanguardia es peligrosa (y diría que irresponsable). Es peligroso para usted y, por lo tanto, también peligroso para sus dependientes.
Si está dispuesto a correr ese tipo de riesgo por el bien de
auto
, por todos los medios, hágalo. Pero no te voy a aconsejar que lo hagas.Porque en mi experiencia, ir multiplataforma, particularmente en consolas , se logra mejor al apuntar al mínimo común denominador, que puede estar seguro de que funcionará prácticamente en todas partes, no confiando en todas las últimas características del lenguaje whiz-bang. Si algún día necesita portar a una plataforma que no los admite, terminará teniendo que reescribir sus sistemas desde cero. ¿Puede permitirse pagar salarios / alquileres mientras eso sucede?
fuente
Si está dispuesto a hacer un poco más de trabajo, podría buscar soluciones de refractorización. clang tiene algunas cosas interesantes que suceden en esa área actualmente. Debería ser posible usar la palabra clave auto, ejecutarla a través del refactorizador que encontrará todos los usos, resolverlos por usted y generar el código y luego compilarlo con lo que desee.
Pero eso significa menos tiempo para trabajar en tu juego.
También existe la posibilidad de algunas características adicionales, por ejemplo, la reflexión. Puede crear una clase y generar automáticamente una lista de todas las propiedades para inspeccionar en tiempo de ejecución. Podría ser muy útil para crear secuencias de comandos, producir editores de juegos, etc. EDITAR: Echa un vistazo a 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
fuente
2to3
pero a la inversa y mucho más impresionante pero probablemente más difícil de usar. Hombre, ¿cuánto mejor puedeauto
ser?