class CBase{
public:
    int x_, y_;

    CBase(int x = 0, int y = 0){
        x_ = x; y_ = y; 
    }
};
// 上のクラスはめっちゃ適当です。
// ソート用に演算子のオーバーロード
bool operator < (CBase &a, CBase &b){
    return a.x_ < b.x_;
}

std::list<CBase *> ObjectList;
CBase* BB = new CBase(100, 20);
CBase* BBA = new CBase(200, 20);
CBase* BBB = new CBase(150, 20);

ObjectList.push_back(BB);
ObjectList.push_back(BBA);
ObjectList.push_back(BBB);

// ここでソートしたいがうまくいかない
ObjectList.sort();

CBaseクラスのx_の値でソートしたいのですがうまくいかないんですができないんでしょうか?
std::list<CBase *> ObjectListをstd::list<CBase> ObjectListにして実体渡せばソートできるみたいなんですが
どなたか回答お願いします。