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?