2011-04-25 5 views
10

Mi propósito es reutilizar alguna implementación C++ STL para el desarrollo de iOS con biblioteca estática.¿Alguna limitación al utilizar C++ STL para el desarrollo de iOS?

Como sabemos, los dispositivos iOS se basan en la familia ARM6/7, que es diferente con la familia * 86 para algunas opciones del compilador.

Para el desarrollo móvil, preferimos reutilizar algunos códigos C++ en diferentes plataformas, como iOS, Android e incluso para PC.

Así que pregunte aquí para conocer algunos problemas o limitaciones para este propósito.

Gracias


C++ STL acaba de hacer referencia alguna versión popular, no quiero para cubrir todas las bibliotecas STL, que sólo quieren saber algunos temas populares para este caso. Gracias por señalar cualquiera.

+1

Cuando dices "alguna implementación de STL", ¿te refieres a "cualquier implementación de STL" o "una implementación de STL específica"? Porque AFAIK, el STL que se envía con Xcode, funciona perfectamente con iDevices. Mientras no hagas tú mismo el código de ensamblaje, no veo lo que no podría funcionar. – zneak

Respuesta

8

El objetivo principal del uso de herramientas estandarizadas es lograr la portabilidad. Siempre que use la biblioteca como está previsto, sin depender del comportamiento fuera del estándar, no debería haber problemas moviéndolo a cualquier plataforma con una buena implementación en C++.

La implementación de la Biblioteca estándar en iOS es la misma que en Mac OS. No debería haber diferencia.

ARM vs x86 no debería hacer diferencia alguna. La parte de la biblioteca estándar de C++ llamada STL consiste completamente en plantillas, por lo tanto, "Estándar Biblioteca". Las plantillas sobre estructuras de datos de alto nivel casi imposibilitan los trucos del lenguaje ensamblador.

+2

La única advertencia es que asegúrate de hacer la transición de las colecciones de STL a las colecciones de Cocoa con elegancia cuando se necesiten esas transiciones. Tan obtuso como suena, he visto varios ejemplos de personas que intentan calzar STL en áreas de Cocoa a las que no pertenece, creando más trabajo del necesario y terminando en un producto de menor calidad. – matthias

2

No - cuando trabajaba para mi empleador anterior, utilizamos una pila de protocolos completa (con algunos STL) escrita en C++ para nuestro cliente de escritorio para el desarrollo de arranque de nuestro cliente de iPhone. Funcionó muy bien.

Cuestiones relacionadas