Board index » cppbuilder » converting to cb2007 from b5: iterators are const?
Peter Strömberg
![]() CBuilder Developer |
converting to cb2007 from b5: iterators are const?2007-12-03 07:08:02 PM cppbuilder30 It seems iterator are const in 2007 and not only const_iterator This worked in builder 5 #include <vcl.h> #pragma hdrstop #include <set> using namespace std; struct MyClass { int id; int data; MyClass() : id(0), data(0) {} MyClass(int _id) : id(_id), data(0) {} friend bool operator<(const MyClass &lhs, const MyClass &rhs) { return (lhs.id < rhs.id); } friend bool operator!=(const MyClass &lhs, const MyClass &rhs) { return (lhs.id != rhs.id); } }; #pragma argsused int main(int argc, char* argv[]) { set<MyClass>theData; MyClass tmp(1); theData.insert(tmp); set<MyClass>::iterator it = theData.find(tmp); if (it != theData.end()) { it->data = 2; // [BCC32 Error] File2.cpp(29): E2024 Cannot modify a const object MyClass *p = &(*it); // [BCC32 Error] File2.cpp(31): E2034 Cannot convert 'const MyClass *' to 'MyClass *' } return 0; } //--------------------------------------------------------------------------- |