Add official support for the Modern C++ projection written by Kenny Kerr
"Modern is a Standard C++ language projection for the Windows Runtime. The Modern compiler produces a header-only library designed to provide Standard C++ developers with first-class access to the Windows API.
It takes advantage of C++11 and beyond to provide a truly modern language projection for the Windows Runtime. So while it is still COM under the hood, a C++ developer should think in terms of references rather than pointers. Practically nothing is off limits to the developer hungry for power, but you don’t need to sacrifice productivity or safety along the way. About the only thing that Modern prohibits is explicit reference counting. It uses C++11’s move semantics to handle reference counting reliably and sparingly."
Thanks for the suggestions Raffaele. There are two different issues here. The first has to do with whether C++/WinRT (Modern) works on the desktop and the answer is a resounding yes! There’s nothing preventing it from working in a console or desktop app and I will fight for that to remain natural and convenient. This is not in any way restricted to app containers. The second issue has to do with what I call classic COM APIs like DirectX or WIC. That’s a harder problem to solve. C++/WinRT as a library can handle those APIs (http://dx.codeplex.com/) but the problem is that those APIs don’t have easily parse-able metadata. We might choose either to provide metadata in the form of new WinRT APIs or extend the tooling to somehow bridge that gap. We haven’t made a decision there yet as we’ve been focused on WinRT, but comments and suggestions like this are very helpful. Thanks!
Kenny Kerr [MSFT]
Raffaele Rialdi commented
But now please do NOT limit modern to WinRT. If you want people embrace WinRT, you have to extend its usage to the desktop apps, with the option of dropping the sandbox (as the bridge allows) and embracing ModernCpp on other libraries.
Once the desktop will adopt this, companies will begin packaging sandboxed UWP for the store, but this will happen only after the desktop is 100% covered by WinRT.
BTW this is a common question customers (corps) ask me.