We run the gamut of memory management options.
UObjects, our main reflection based class system, is garbage collected at a specified interval (typically 30 sec, but configurable)
**FWeakObjectPtr **is a pointer to a UObject that won’t affect garbage collection and will be NULL’d if it is in fact GC’d
TSharedPtr<> and TSharedRef<> are ref counted shared pointers as you’d expect them, and will free memory when all references are removed
TSharedRef<> is basically a TSharedPtr<> that cannot be NULL
**TWeakPtr **works with TSharedPtr<> and doesn’t hold a ref count
Finally you have regular old pointers that you manage the memory lifetime itself. There is lots of documentation available and in the code on these class types. Hope this helps.
We are working on identifying and adopting the main C++11 extensions and you’ll already find many examples in the code base. We have to keep in mind many different compilers, so we have typically adopted the features that are most compatible across all compilers.