Mam proste klasy, dla których chcę przeciążać operatora jak poniżejoperator() przeciążenie z szablonu C++
class MyClass
{
public:
int first;
template <typename T>
T operator()() const { return first; }
};
a gdzieś indziej mam
MyClass obj;
int i = obj(); // This gives me an error saying could not deduce
// template argument for T
Czy ktoś może mi w tym pomóc błąd, bardzo doceniany. Dziękuję Ci.
edit:
To ma coś wspólnego z operatorem(), na przykład jeśli mam wymienić funkcję z
template <typename T>
T get() const { return first;}
to działa. Doceń wszystkie odpowiedzi.
Nie chcę, aby było to niejawne, ale chcę uniknąć użycia szablonu dla całej klasy. Jeśli przesyłaję go przy użyciu szablonu członkowskiego, a wywołanie jest jawne, nawet wtedy nie działa. –
mi pokazać aktualny kod korzystając codepad.org –
http://codepad.org/E30yRqTU –