Szablon funkcji z operatorem

Czy w C ++ możesz mieć operatora klasy w klasie? Tak jak:

class MyClass {
public:
    template<class T>
    T operator()() { /* return some T */ };
}

Wydaje się, że to dobrze się kompiluje, ale nieporozumienie pojawia się w sposobie korzystania z niego:

MyClass c;
int i = c<int>(); // This doesn't work
int i = (int)c(); // Neither does this*

Fakt, że w ogóle się kompiluje, sugeruje mi, że jest wykonalny, po prostu nie potrafię go użyć! Jakieś sugestie, czy ta metoda jest nieużyteczna?

questionAnswers(3)

yourAnswerToTheQuestion