Здравствуйте, Chorkov, Вы писали:
C>Здравствуйте, EXL, Вы писали:
EXL>>Пытаюсь собрать кое-какую игру на телефон, но совершенно не знаю языка.
EXL>>Помогите пожалуйста разобраться, насколько я понял ошибка синтаксическая.
EXL>>Лог компилятора:
EXL>>C>..
EXL>>src/Queue.cpp: In member function `void Queue::update()':
EXL>>src/Queue.cpp:50: error: no match for 'operator!=' in 'it != std::list<_Tp, _Alloc>::rend() [with _Tp = Tile*, _Alloc = std::allocator<Tile*>]()'
EXL>>src/Queue.cpp:51: error: no match for 'operator==' in 'it == std::list<_Tp, _Alloc>::rbegin() [with _Tp = Tile*, _Alloc = std::allocator<Tile*>]()'
EXL>>src/Queue.cpp: In member function `virtual void Queue::redraw()':
EXL>>src/Queue.cpp:61: error: no match for 'operator!=' in 'it != std::list<_Tp, _Alloc>::rend() [with _Tp = Tile*, _Alloc = std::allocator<Tile*>]()'
C>..
EXL>>
C>Пишет, что не может сравнить const_reverse_iterator с reverse_iterator. Это очень странно.
C>(Все разумные реализации STL должны уметь.)
C>Попробуй так:
EXL>>Queue.cpp:
C>C>..
C>void Queue::update()
C>{
C> Sprite::update();
C> for (list<Tile*>::reverse_iterator it = tiles.rbegin(); it != tiles.rend(); ++it)
C> if (it == tiles.rbegin())
C> (*it)->redraw();
C> else
C> (*it)->update();
C> return;
C>}
C>void Queue::redraw()
C>{
C> Sprite::redraw();
C> for (list<Tile*>::reverse_iterator it = tiles.rbegin(); it != tiles.rend(); ++it)
C> (*it)->redraw();
C>}
C>..
C>
Спасибо огромное, всё собралось!