I’ve tried the new Metro flavored C++ in the Win 8 Preview and it looks good. Except for one thing, why do we have to use the hat (^) as a fancy doublepointer for accessing say, XAML objects? I mean, I could understand why, for previous C++/CLI programs running inside classic .NET with its garbage collection that can pull the rug from under you, that hats are needed.
But inside this new WinRT, objects are supposed to be ref-counted COM-style. And no garbage collection will issue surprise memory shuffles. So why the hats?
(Indeed, if vanilla pointers would have been supported for accessing WinRT objects, then I think Win8 C++ coding could be even more elegant.)