cocoa - cox - ¿Qué tan bien se admite Objective-C++?
objective c vs swift (7)
Descargo de responsabilidad: no trabajo ni hablo por Apple, esta es mi opinión:
No puedo hablar por las principales tiendas de desarrollo, pero en mi pequeño grupo, hemos utilizado Objective-C ++ tanto para integrar bibliotecas de C ++, como para proponer la escritura de backends en C ++. Como @alxp menciona, cosas como el manejo de excepciones a través del límite del idioma son dolorosas, pero con un poco de planificación, la mayoría de estos dolores se pueden evitar. Para los desarrolladores experimentados de C ++, las ganancias pueden valer la pena.
En términos de soporte, creo que puede suponer que el soporte en su estado actual no desaparecerá en el corto plazo. Es parte de la base de código de GCC y la cadena de herramientas Clang (la siguiente cadena de herramientas de compilación de Apple) es totalmente compatible con Objective-C ++. Por otro lado, no hay ninguna garantía oficial de que Apple continúe desarrollando la integración, arreglando algunas de las verrugas, por ejemplo.
Para proyectos actuales, diría que si usar Objective-C ++ proporciona beneficios, es seguro confiar en el soporte existente y debe usarlo.
He estado aprendiendo Objective-C y Cocoa trabajando en el libro de Hillegass y se me ocurre que podría ser mejor usar Objective-C ++. Objective-C parece ser la elección más clara para desarrollar UI, pero tengo un fondo de C ++ muy fuerte y me encantaría desarrollar back-ends de aplicaciones en C ++ y utilizar Objective-C ++ para hacer la integración de UI. Pero me pregunto si Apple seguirá desarrollando Objective-C ++ o se convertirá en un callejón sin salida.
¿Hay alguien por ahí usando Objective-C ++?
El otro día me sorprendí cuando intenté refactorizar un código Objective-C que estaba dentro de un archivo Objective-C ++ usando el soporte de refactorización de Xcode. Aunque los elementos del menú están habilitados, obtuve el código "No se puede refactorizar Objective-C ++. Xcode solo puede refactorizar código C y Objective-C". mensaje de error. Entonces, mientras la compilación de Objective-C ++ continuará funcionando indefinidamente, sospecho que Objective-C ++ será un ciudadano de segunda clase dentro de Xcode.
Las únicas veces que utilicé ObjC ++ fue exportar las bibliotecas para hacerlas accesibles desde mi código ObjC. Los enfrentamientos entre cómo ObjC ++ y ObjC manejan cosas como excepciones y la creación y destrucción de clases simplemente hicieron que fuera un gran dolor de cabeza hacer malabares con los dos idiomas en un solo proyecto.
No creo que el soporte desaparezca pronto como sucedió con Cocoa / Java, ya que es bastante parte de GCC, y el hecho de que Objective-C ++ se compila en C ++ directamente de la misma manera que Objective-C puede compilarse directamente C, pero todavía no creo que sea un entorno muy agradable para construir software en comparación con Objective-C y poder utilizar completamente los marcos proporcionados por OS X.
Lo saqué de todo mi código. No, archivos .mm
Pero necesita archivos .cpp para hablar con archivos .m. La solución es un archivo .c / .h que mantiene intacta la barrera hematoencefálica.
C ++ con objetivo C generalmente es demasiado equipaje.
Objective-C es realmente solo un montón de código C que emula objetos en el lenguaje C, y todavía utiliza el compilador de C, incluidos los archivos de encabezado Objective-C. El uso de Objective-C ++ utiliza el compilador de C ++ e incluye los encabezados de Objective-C como código de C, ya que C ++ ejecutará el código de C. Objective-C ++ es esencialmente solo C, C ++ y Objective-C (que en realidad es solo C)
Sospecho que Apple continuará soportando Objective C ++ por un tiempo, ya que no veo ningún esfuerzo recurrente significativo requerido por Apple para mantener Objective C ++ cuando Apple actualice Cocoa y Objective C ++.
Objective-C ++ es probable que siga siendo compatible siempre que Objective-C lo sea. Obj-C ++ es un objetivo básico para Clang , que se espera que eventualmente reemplace a gcc como el compilador preferido de Apple. Es probable que el uso aumente a medida que las aplicaciones de Carbono se muevan a los front end de Cocoa.
Por supuesto, la palabra "probable" aparece dos veces más arriba porque Apple es tan emocionantemente impredecible. :-)