Weird C++ problem

Started by
0 comments, last by SiCrane 10 years, 10 months ago

Here is this piece of code:


    for( list<CObjectParent*>::const_iterator i = object_parent_list.begin(); i != object_parent_list.end(); ++i)
        if( (*i)->select( cam_pos, curs_pos, &min_distance, &p_aimed_object))
            aimed_something = true;

This shouldnt compile because CObjectParent.select(...) is not const. But it works.

Also the debugger is being weird. I run the program in debug mode, it works as it should(more or less) but when I stop it at a random breakpoint and i step through a few lines it gives weird errors.

[attachment=16427:Untitled.png]

See the pic. It said this to the PushMatrix line: "Type std::list<CObjectInstance*, std::allocator<CObjectInstance*> > has no component named object_instance_list."

Sometimes it says segmentation fault bla-bla. Ive been checking the code all day but everything seems to be OK. Help would be really appreciated.

My IDE is NetBeans and the compiler is GCC(using the C++11 standard)

Advertisement
When you use a const_iterator on a container of pointers, you can't change the pointers. So you can't do *i = some_new_pointer; You can still change object that those pointers point to because the pointers are pointers to non-const objects.

This topic is closed to new replies.

Advertisement