¿Está `esto` permitido dentro de una especificación de excepción?

Tengo un código que requiere que use*this, pero quiero que no sea menos amigable:

struct foo;

// Would actually be something with conditional noexcept
void do_something(foo&);

struct foo {
    void fn()
        noexcept(noexcept(::do_something(*this)))
    {
        ::do_something(*this);
    }
};

Sin embargo,gcc rechaza esta:

<source>:7:43: error: invalid use of 'this' at top level
         noexcept(noexcept(::do_something(*this)))

Si solo accedo a un miembro, gcc está bien:

void do_something(int);

struct bar {
    int x;

    void fn()
        noexcept(noexcept(::do_something(x)))
    {
        ::do_something(x);
    }
};

Sin embargo, si accedo al miembro a través dethis puntero,gcc se queja de nuevo:

struct baz {
    int x;

    void fn()
        noexcept(noexcept(::do_something(this->x)))
    {
        ::do_something(this->x);
    }
};

Diagnóstico

<source>:7:42: error: invalid use of 'this' at top level
         noexcept(noexcept(::do_something(this->x)))

Cada otro compilador probé acepta conthis dentro de la especificación noexcept, pero en realidad no sé si es gcc el que tiene el error o todos los demás compiladores.

Puede la palabra clavethis ser utilizado dentro de una especificación noexcept?

Respuestas a la pregunta(1)

Su respuesta a la pregunta