¿Es C ++ CLI un superconjunto de C ++?
Pregunta
¿Un compilador de C ++ CLI podrá compilar algunos conjuntos grandes de clases de C ++ sin modificaciones?
¿Es C ++ CLI un superconjunto de C ++?
Solución
técnicamente no, pero dependiendo de lo estándar que sea el código C ++, probablemente estarás bien. Cuando te metes en Windows, puedes tener problemas. Compilé todo el motor del juego que usamos en el trabajo en C ++ / CLI una vez y funcionó bien. Un colega hizo lo mismo con Mozilla y no tuvo tanta suerte.
Otros consejos
Según Wikipedia :
C ++ / CLI debe considerarse como un lenguaje propio (con un nuevo conjunto de palabras clave, por ejemplo), en lugar de C ++ Managed C ++ orientado a superconjunto
Todavía soy nuevo con mi curva de aprendizaje en C ++ / CLI, pero he tenido la misma pregunta y lo que he determinado hasta ahora es que C ++ / CLI es, como lenguaje, un superconjunto de C ++ estándar.
Si no usa las extensiones de la CLI, su código de C ++ terminará como un código no administrado nativo, y debería ser esencialmente el mismo, pero compilado para el CLR IL, en lugar de x86 nativo.
Una vez que comience a usar las extensiones de CLI (y comience a caer en el uso de objetos / manejar / clases administradas), comenzará a interactuar más con la plataforma CLR subyacente. En ese momento, esencialmente se convierte en un nuevo "lenguaje", y tendrás que separar tu pensamiento entre los "no administrados" lado y el " gestionado " lado.
C ++ / CLI no es un superconjunto de C ++. Es más bien un subconjunto con adiciones. P.EJ. C ++ / CLI no admite la herencia múltiple.
Angelo
Página 3 del libro de Marcus Heege 'Expert C ++ / CLI.NET for Visual C ++ Programmers':
C ++ / CLI es un conjunto de extensiones hechas para el lenguaje C ++ para beneficiarse de la Servicios que una implementación de la Ofertas de CLI.
Y más abajo en la misma página:
C ++ / CLI es un superconjunto del lenguaje C ++.
Su excelente libro está disponible de forma gratuita en aquí .
Pude compilar toda la biblioteca Qt (que es enorme) como C ++ / CLI con modificaciones menores (principalmente en el entorno de compilación, pero también corregí un error en el código fuente de Qt)