/Engine/Plugins/Online/OnlineServices/Source/OnlineServicesInterface/Public/Online/OnlineAsyncOpHandle.h
Need to add a comment here explaining how this works: There's an optional first parameter that is a class instance (raw pointer or shared/weakptr/ref/weakobjptr). If possible, this will be checked for validity before calling the callback Next is the callback, signatures in FAsyncOpState (TODO: Move that to a more visible location), can be a member function After that is any additional params that should be captured (like the ue4 delegates support) (or we remove this capability) Always called on the game thread
template<typename... ArgTypes> [TOnlineAsyncOpHandle](API\Plugins\OnlineServicesInterface\Online\TOnlineAsyncOpHandle) & OnProgress ( ArgTypes &&... Args )