Вызов функции-члена в decltype

Следующий код:

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

17
задан templatetypedef 28 February 2011 в 21:05
поделиться