Declaring function objects for comparison?
c++, function-object, operator-keyword, operators
Solution
And a third one comes in... After you edited you question, still one open topic: your comparator takes a `const &` to the `GameEntity` class. It should, in order to work with the values of the `vector<GameEntity*>`, take `const GameEntity*` arguments instead.
Problem
I have seen other people questions but found none that applied to what I'm trying to achieve here. I'm trying to sort Entities via my EntityManager class using std::sort and a `std::vector<Entity *>` ``` /*Entity.h*/ class Entity { public: float x,y; }; struct compareByX{ bool operator()(const GameEntity &a, const GameEntity &b) { return (a.x < b.x); } }; /*Class EntityManager that uses Entitiy*/ typedef std::vector<Entity *> ENTITY_VECTOR; //Entity reference vector class EntityManager: public Entity { private: ENTITY_VECTOR managedEntities; public: void sortEntitiesX(); }; void EntityManager::sortEntitiesX() { /*perform sorting of the entitiesList by their X value*/ compareByX comparer; std::sort(entityList.begin(), entityList.end(), comparer); } ``` I'm getting a dozen of errors like ``` : error: no match for call to '(compareByX) (GameEntity* const&, GameEntity* const&)' : note: candidates are: bool compareByX::operator()(const GameEntity&, const GameEntity&) ``` I'm not sure but ENTITY_VECTOR is `std::vector<Entity *>` , and I don't know if that could be the problem when using the compareByX function object ? I'm pretty new to C++, so any kind of help is welcome.