Chamada de função de membro em decltype

O código a seguir:

struct A
{
    int f(int);
    auto g(int x) -> decltype(f(x));
};

Falha ao compilar com o erro:

error: cannot call member function 'int B::f(int)' without object

Se eu mudar para:

struct A
{
    int f(int);
    auto g(int x) -> decltype(this->f(x));
};

Eu recebo outro erro:

error: invalid use of 'this' at top level

O que há de errado com qualquer um desses? Estou usando o gcc 4.6

questionAnswers(6)

yourAnswerToTheQuestion