教えてください。

tupleのvectorをtupleの第1要素でソートしたいときどうしたらいいんでしょう。

typedef boost::tuple<int, double> Tuple;

std::vector<Tuple> data;
// data.push_back(boost::make_tuple(1, 1.0)); ....

std::sort(data.begin(), data.end(),
boost::bind(
std::less<int>(),
boost::bind(boost::mem_fn(&Tuple::get<0>, _1),
boost::bind(boost::mem_fn(&Tuple::get<0>, _2)
));

これだとコンパイル通りませんでした。
(BCB6で「コンパイラ内部のエラー」)

なんか間違ってるでしょうか。
それか、こういう場合もっと簡単な方法があるんでしょうか?