Странная ошибка GCC: ожидаемое первичное выражение перед ',' token

Я все еще пытаюсь перейти с MSVC на GCC, но не могу найти решение следующей проблемы:

template < typename A, typename B, typename C, typename D >
class Test
{
public:
    Test (B* pObj, C fn, const D& args) : _pObj(pObj), _fn(fn), _args(args)
    {
    }

    A operator() ()
    {
        return _args.operator() < A, B, C > (_pObj, _fn); // error: expected primary-expression before ',' token
    }

    B* _pObj;
    C _fn;
    D _args;
};

Пожалуйста, помогите!

7
задан Ryan 27 April 2011 в 09:40
поделиться