How to check if a class is streamable

You code is correct except for a few cases including: std::pair, std::tuple, std::array, std::unique_ptr.
You could ‘hard code’ that those are streamable. or you can use TClass::GetMissingDictionaries(THashTable& result, bool recurse = false);