tuple_element

template<class T1, class T2>
    class tuple_element<0, pair<T1, T2> > {
    typedef T1 type;
    };
template<class T1, class T2>
    class tuple_element<1, pair<T1, T2> > {
    typedef T2 type;
    };

[Added with TR1]

The templates are specializations of the template class tuple_element. Each has a nested typedef type that is a synonym for the type of the corresponding pair element.