У меня работает следующий фрагмент кода:
class Foo {
public:
template <class T> T& get () { ... }
};
Foo foo;
foo.get<int>() = ...;
Однако следующий фрагмент кода не работает для меня:
class Foo {
public:
template <class T> T& operator() () { ... }
};
Foo foo;
foo<int>() = ...;
Ошибки:
expected primary-expression before '>' token
expected primary expression before ')' token
Обе ошибки относятся к foo<int>()
Почему это не работает и можно ли это исправить?