Function template with an operator
c++, operator-overloading, templates
Solution
You need to specify `T`.
int i = c.operator()<int>();
Unfortunately, you can't use the function call syntax directly in this case.
Edit: Oh, and you're missing `public:` at the beginning of the class definition.
Problem
In C++, can you have a templated operator on a class? Like so: ``` class MyClass { public: template<class T> T operator()() { /* return some T */ }; } ``` This actually seems to compile just fine, but the confusion comes in how one would use it: ``` MyClass c; int i = c<int>(); // This doesn't work int i = (int)c(); // Neither does this* ``` The fact that it compiles at all suggests to me that it's doable, I'm just at a loss for how to use it! Any suggestions, or is this method of use a non-starter?