Microsoft (principalmente, Herb Sutter ) consiglia di utilizzare WinRT con C ++ / CX per mantenere WinRT ai limiti dell'applicazione e mantiene il nucleo dell'applicazione scritto in standard ISO C ++.
Ho scritto un'applicazione che vorrei lasciare portatile, quindi la mia funzionalità di base è stata scritta in C ++ standard e ora sto cercando di scrivere un front-end in stile Metro usando C ++ / CX. Ho avuto un po 'di problemi con questo approccio, comunque. Ad esempio, se voglio spostare un vettore di tipi C ++ definiti dall'utente in un controllo ListView XAML, devo avvolgere il mio tipo definito dall'utente in un tipo ref / value di WinRT perché venga archiviato in Vector^
. Con questo approccio, sono inevitabilmente rimasto con una grande porzione delle mie classi C ++ con classi WinRT.
Questa è la prima volta che ho provato a scrivere un'applicazione portatile portatile in C ++. È davvero pratico mantenere WinRT lungo i confini come questo? In quale altro modo si può gestire questo tipo di core portatile con un limite specifico della piattaforma?