Modelo de função com um operador

Em C ++, você pode ter um operador de modelo em uma classe? Igual a:

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

Isso realmente parece compilar muito bem, mas a confusão vem em como se poderia usá-lo:

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

O fato de que compila em tudo sugere para mim que é factível, estou apenas em uma perda de como usá-lo! Alguma sugestão, ou é este método de uso não-inicial?

questionAnswers(3)

yourAnswerToTheQuestion