Return multiple values
This pattern is licensed under the CC0 Public Domain Dedication.
Return multiple values of different types from a function.
Alternatively, on line 16 we use
to assign the return values to each of the given objects.
This may not be possible if the objects cannot be constructed
beforehand and it removes the possibility of copy elision.
If the values are closely and logically related, consider composing
them into a