Microsoft (terutama, Herb Sutter ) merekomendasikan ketika menggunakan WinRT dengan C ++ / CX untuk menjaga WinRT pada batas-batas aplikasi dan menjaga inti aplikasi ditulis dalam standar ISO C ++.
Saya telah menulis sebuah aplikasi yang ingin saya tinggalkan portabel, jadi fungsionalitas inti saya ditulis dalam standar C ++, dan saya sekarang mencoba untuk menulis front-style Metro untuk itu menggunakan C ++ / CX. Namun, saya punya sedikit masalah dengan pendekatan ini. Misalnya, jika saya ingin mendorong vektor tipe C ++ yang ditentukan pengguna ke kontrol XAML ListView, saya harus membungkus tipe yang ditentukan pengguna dalam tipe ref / nilai WinRT agar dapat disimpan dalam a Vector^
. Dengan pendekatan ini, saya mau tidak mau membungkus sebagian besar kelas C ++ saya dengan kelas WinRT.
Ini adalah pertama kalinya saya mencoba menulis aplikasi asli portabel di C ++. Apakah benar-benar praktis untuk menjaga WinRT di sepanjang batas seperti ini? Bagaimana lagi jenis inti portabel ini dengan batasan platform khusus dapat ditangani?