¿Pueden los parámetros de plantilla que no son de tipo en c ++ 17 ser decltype (auto)?

Descubrí que gcc y clang permiten usardecltype(auto) en la cláusula de tipo de parámetro de plantilla no tipo P.ej.:

template <decltype(auto)>
struct X {};

int foo ;

int main() {
    X<(foo)> x;
    static_cast<void>(x);
}

[live demo gcc] [Clan demo en vivo]

¿Es una característica compatible estándar o es una extensión de GNU?

Respuestas a la pregunta(1)

Su respuesta a la pregunta