Microsoft (principalement Herb Sutter ) recommande lors de l'utilisation de WinRT avec C ++ / CX de garder WinRT aux limites de l'application et de conserver le cœur de l'application écrit en ISO C ++ standard.
J'ai écrit une application que je voudrais laisser portable, donc ma fonctionnalité de base a été écrite en C ++ standard, et j'essaie maintenant d'écrire un frontal de style Metro pour cela en utilisant C ++ / CX. J'ai cependant eu un petit problème avec cette approche. Par exemple, si je veux pousser un vecteur de types C ++ définis par l'utilisateur vers un contrôle XAML ListView, je dois encapsuler mon type défini par l'utilisateur dans un type de référence / valeur WinRT pour qu'il soit stocké dans un Vector^
. Avec cette approche, il me reste inévitablement à encapsuler une grande partie de mes classes C ++ avec des classes WinRT.
C'est la première fois que j'essaie d'écrire une application native portable en C ++. Est-il vraiment pratique de garder WinRT le long des frontières comme ça? Sinon, comment pourrait-on gérer ce type de noyau portable avec une limite spécifique à la plate-forme?