i have to change my code from using std::shared_ptr to TSharedPtr (so i can use unreal engine's delegates properly), but there is a problem - i can't find function to replace std::dynamic_pointer_cast, there is only a StaticCastSharedPtr, but i need to be able to check if the object is of derived type in runtime, static casting won't help with that, am i missing something?