Template:cpp/numeric/valarray/notes ret

The function can be implemented with the return type different from std. In this case, the replacement type has the following properties:
 * All member functions of std are provided.
 * std, std, std, std and std can be constructed from the replacement type.
 * All functions accepting an argument of type  should also accept the replacement type.
 * All functions accepting two arguments of type should accept every combination of  and the replacement type.
 * The return type does not add more than two levels of template nesting over the most deeply-nested argument type.