std :: common_type implementación

Solo para ver cómo funcionaba, observé la implementación libstdc ++ destd::common_type en el encabezadotype_traits. Tengo que admitir que realmente no entiendo cómo funciona. Aquí está:

/// common_type
template<typename... _Tp>
    struct common_type;

template<typename _Tp>
    struct common_type<_Tp>
    { typedef _Tp type; };

template<typename _Tp, typename _Up>
    struct common_type<_Tp, _Up>
    { typedef decltype(true ? declval<_Tp>() : declval<_Up>()) type; };

template<typename _Tp, typename _Up, typename... _Vp>
    struct common_type<_Tp, _Up, _Vp...>
    {
        typedef typename
        common_type<typename common_type<_Tp, _Up>::type, _Vp...>::type type;
    };

Entiendo bien cómo funcionan las declaraciones primera, segunda y cuarta. Sin embargo, no logro entender cómo funciona la tercera declaración. ¿Podría alguien tratar de explicar el mecanismo utilizado aquí?

Respuestas a la pregunta(3)

Su respuesta a la pregunta