Microsoft(主にHerb Sutter)は、WinRTをC ++ / CXとともに使用して、WinRTをアプリケーションの境界に保ち、アプリケーションのコアを標準ISO C ++で記述したままにすることを推奨しています。
私は移植性を残したいアプリケーションを書いているので、私のコア機能は標準C ++で書かれており、C ++ / CXを使用してMetroスタイルのフロントエンドを書こうとしています。ただし、このアプローチには少し問題があります。たとえば、ユーザー定義のC ++型のベクトルをXAML ListViewコントロールにプッシュしたい場合、ユーザー定義型をWinRT ref / value型にラップして、に格納する必要がありVector^
ます。このアプローチでは、C ++クラスの大部分をWinRTクラスでラップする必要があります。
C ++で移植可能なネイティブアプリケーションを記述しようとしたのはこれが初めてです。このような境界に沿ってWinRTを維持することは本当に実用的ですか?プラットフォーム固有の境界を持つこのタイプのポータブルコアは、他にどのように処理できますか?