Microsoft (principalmente, Herb Sutter ) recomienda utilizar WinRT con C ++ / CX para mantener WinRT en los límites de la aplicación y mantener el núcleo de la aplicación escrito en ISO C ++ estándar.
He estado escribiendo una aplicación que me gustaría dejar portátil, por lo que mi funcionalidad principal se escribió en C ++ estándar, y ahora estoy intentando escribir un front-end de estilo Metro usando C ++ / CX. Sin embargo, he tenido un pequeño problema con este enfoque. Por ejemplo, si quiero insertar un vector de tipos C ++ definidos por el usuario en un control XAML ListView, tengo que ajustar mi tipo definido por el usuario en un tipo de valor / ref WinRT para que se almacene en un Vector^
. Con este enfoque, inevitablemente me queda envolver una gran parte de mis clases de C ++ con las clases de WinRT.
Esta es la primera vez que intento escribir una aplicación nativa portátil en C ++. ¿Es realmente práctico mantener WinRT a lo largo de los límites como este? ¿De qué otra forma podría manejarse este tipo de núcleo portátil con un límite específico de plataforma?