My code,
template<typename T> class NamedObject{ public: NamedObject(std::string& name, const T& value):nameValue(name), objectValue(value) { } private: std::string& nameValue; const T objectValue; }; int main(int argc, char* argv[]) { NamedObject<int> obj1(std::string("Obj1"),3); NamedObject<int> obj2(std::string("Obj2"),3); obj2 = obj1; //this line gives error return 0; } I am getting error,
Error 1 error C2582: 'operator =' function is unavailable in 'NamedObject' c:\users\pkothari\documents\visual studio 2008\projects\stackoflw\stackoflw\stackoflw.cpp 39
I have not provide any operator =, shouldn't compiler provide default one?
@Edit for shown as duplicate: I agree with const, reference can refer to member of another object.
operator=is generatedoperator=