以下のように演算子をオーバーロードしたい単純なクラスがあります
class MyClass
{
public:
int first;
template <typename T>
T operator () () const { return first; }
};
そして私が持っている他のどこか
MyClass obj;
int i = obj(); // This gives me an error saying could not deduce
// template argument for T
誰かがこのエラーで私を助けてくれますか、大いに感謝します。ありがとうございました。
編集:
これはoperator()と関係があります。たとえば、関数を次のように置き換えた場合です。
template <typename T>
T get() const { return first;}
できます。すべての回答に感謝します。