Microsoft (principalmente, Herb Sutter ) consiglia quando si utilizza WinRT con C ++ / CX per mantenere WinRT ai limiti dell'applicazione e mantenere il nucleo dell'applicazione scritto nello standard ISO C ++.
Sto scrivendo un'applicazione che vorrei lasciare portatile, quindi la mia funzionalità principale è stata scritta in C ++ standard e ora sto provando a scrivere un front-end in stile Metro usando C ++ / CX. Tuttavia, ho avuto un po 'di problemi con questo approccio. Ad esempio, se voglio trasferire un vettore di tipi C ++ definiti dall'utente in un controllo ListView XAML, devo racchiudere il mio tipo definito dall'utente in un tipo ref / value WinRT per poterlo archiviare in a Vector^
. Con questo approccio, mi rimane inevitabilmente il wrapping di gran parte delle mie classi C ++ con classi WinRT.
Questa è la prima volta che ho provato a scrivere un'applicazione nativa portatile in C ++. È davvero pratico mantenere WinRT lungo i limiti in questo modo? In quale altro modo potrebbe essere gestito questo tipo di core portatile con un limite specifico della piattaforma?