Remove ReturnType in favor of std::result_of_t