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