¿Puede sizeof anidado dos veces ser una expresión dependiente?

Noté que gcc 5.0 rechaza el siguiente código, mientras que clang 3.6 lo acepta.

template<int n>
struct I
{
    typedef int Type;
};

template<typename T>
struct A
{
    typedef I<sizeof(sizeof(T))>::Type Type;
};

Los dos compiladores parecen diferir sobre sisizeof(sizeof(T)) es una expresión dependiente del tipo o del valor. Si la expresión fuera dependiente, entonces se deduce queI<sizeof(sizeof(T))> es un tipo dependiente, lo que significa quetypename debe ser requerido

Esto está cubierto por la siguiente redacción en el estándar C ++ 11:

[temp.dep.type] / 8

Un tipo es dependiente si es

un identificador de plantilla simple en el que el nombre de la plantilla es un parámetro de plantilla ocualquiera de los argumentos de la plantilla es un tipo dependiente o una expresión que depende del tipo o del valor

[temp.dep.expr] / 4

Las expresiones de las siguientes formas nunca dependen del tipo (porque el tipo de la expresión no puede ser dependiente):

sizeof unary-expression
sizeof ( type-id )

[temp.dep.constexpr] / 2

Las expresiones de la siguiente forma dependen del valor si la expresión unaria o la expresión es dependiente de tipo o la identificación de tipo es dependiente:

sizeof unary-expression
sizeof ( type-id )

Mi interpretación es quesizeof(T) nunca puede ser dependiente del tipo, lo que significasizeof(sizeof(T)) nunca puede ser dependiente del tipo o del valor.

¿Es esto un error en gcc?

Respuestas a la pregunta(1)

Su respuesta a la pregunta