G
Griff Johns
Hi, if I have the following code:
class MyObject
{
public:
MyObject() {};
~MyObject() {};
int x;
}
class MyObjectList : public std::vector<MyObject> {};
void Foo(MyObject* obj)
{
// Do something with obj->x
}
If I loop through it like this:
MyObjectList list;
// stuff list with objects
MyObjectList::iterator it;
for (it = list.begin(); it != list.end(); ++it) {
// I used to be able to do this:
MyObject* p_obj = it;
Foo(p_obj);
// Or this
Foo(it);
}
But now the error I get is 'cannot convert parameter 1 from
'std::vector<_Ty>::iterator' to 'MyObject *'
This is after migrating a project from vc6.0 to vc7.1, but I think that
the issue lies with the language standards(?). So why does this happen
now, and how do I resolve it?
Thanks.
class MyObject
{
public:
MyObject() {};
~MyObject() {};
int x;
}
class MyObjectList : public std::vector<MyObject> {};
void Foo(MyObject* obj)
{
// Do something with obj->x
}
If I loop through it like this:
MyObjectList list;
// stuff list with objects
MyObjectList::iterator it;
for (it = list.begin(); it != list.end(); ++it) {
// I used to be able to do this:
MyObject* p_obj = it;
Foo(p_obj);
// Or this
Foo(it);
}
But now the error I get is 'cannot convert parameter 1 from
'std::vector<_Ty>::iterator' to 'MyObject *'
This is after migrating a project from vc6.0 to vc7.1, but I think that
the issue lies with the language standards(?). So why does this happen
now, and how do I resolve it?
Thanks.