Microsoft (головним чином, Herb Sutter ) рекомендує при використанні WinRT з C ++ / CX тримати WinRT на межах програми та зберігати ядро програми, написане в стандарті ISO C ++.
Я писав програму, яку хотів би залишити портативною, тому основна функціональність була написана на стандартній мові C ++, і я зараз намагаюся написати передній кінець в стилі метро за допомогою C ++ / CX. Однак у мене з цим підходом були певні проблеми. Наприклад, якщо я хочу перенести вектор визначених користувачем типів C ++ до елемента керування XAML ListView, я повинен загортати визначений користувачем тип у тип refR / значення WinRT, щоб він міг зберігатись у Vector^
. При такому підході мені неминуче залишається обгортання значної частини моїх C ++ класів з класами WinRT.
Це перший раз, коли я намагався написати портативну нативну програму на C ++. Чи реально тримати WinRT уздовж таких меж? Як інакше можна було б обробляти цей тип переносного сердечника з певною платформою?