1) std::sort requires random access iterators. std::list has
bi-directional iterators.

2) you should use the sort() member function for std::list

3) If you are using vc++6 , the predicated version incorrectly
requires the predicate to be in a special form (I don't recall
the exact form (something about dreived from std::greater).

If possible, define operator < for MyPoint, and use the
non-predicated version of the std::list::sort member function.