tengo una clase simple por lo que quiero sobrecargar el operador de la siguiente maneraoperador() de sobrecarga con la plantilla de C++
class MyClass
{
public:
int first;
template <typename T>
T operator()() const { return first; }
};
Y el en otro lugar que tienen
MyClass obj;
int i = obj(); // This gives me an error saying could not deduce
// template argument for T
Puede alguien ayudarme con esto error, muy apreciado Gracias.
edición:
Esto tiene algo que ver con el operador(), por ejemplo, si se sustituye la función con
template <typename T>
T get() const { return first;}
funciona. Apreciar todas las respuestas.
No quiero que sea implícita, pero quiero evitar el uso de la plantilla para toda la clase. Si lo lanzo usando una plantilla de miembro y la llamada es explícita, incluso entonces no funciona. –
Muéstrame el código actual usando codepad.org –
http://codepad.org/E30yRqTU –