Следующий код:
struct A
{
int f(int);
auto g(int x) -> decltype(f(x));
};
Не удается скомпилировать с ошибкой:
error: cannot call member function 'int B::f(int)' without object
Если я изменю его на:
struct A
{
int f(int);
auto g(int x) -> decltype(this->f(x));
};
, я получу еще одну ошибку:
error: invalid use of 'this' at top level
Что не так? Я использую gcc 4.6