On 04/24/2010 07:07 PM, Andrew Haley wrote: > On 04/24/2010 06:30 PM, Samkit Jain wrote: >> template<class T> >> MyClass >> { >> public: >> MyClass() : m_data(10) { } >> operator T&() { return m_data; } >> private: >> T m_data; >> }; > > I think this example does what you want: > > template<class T> class > MyClass > { > public: > MyClass() : m_data(10) { } > operator T&() { return m_data; } > T& operator= (const T &t) { m_data = t; return *this; } > private: > T m_data; > }; I'm sorry, I think I misunderstood your question. You're asking why instance++; works, but, say instance = instance + 1; doesn't. Apologies. Andrew.