An object returned by a function must be executed by the function caller for downcast ).Move the downward transformation action to the function.
Motivation: downward transformation may be unavoidable, but you should do as little as possible. If a function returns a value and you know that the returned object type is more specific than the function signature, you impose unnecessary work on function users. In this case, you should not require users to take down the responsibility for transformation, but should try to provide them with accurate types.
The above situation usually occurs on the return iterator or set function. At this point, you should observe what people use this iterator and then provide specific functions.
Practice: 1. Find out where the function call result must be transformed downward.
2Move the downward transformation action to the function.