All of select1st's members are defined in the
Adaptable Unary Function
requirements. Select1st does not introduce any new members.
Notes
[1]Pair is not actually required to be a pair<U,V>, but
merely to support the same interface as pair. In almost all
cases the template parameter will be a pair, but it is occasionally
useful for it to be something else. One example is a struct that
has the members first, second, and third.