std::sortに全順序以外を指定すると死亡

2010-07-14 - メモ用紙の裏

Ubuntu(lucid lynx)+GCC4.4.3では以下を実行するとSEGV。
条件を変える(配列ではなくvectorを使う、ソート対象を17より大きくする)と、他の環境でもSEGVするかも。

#include <algorithm>

bool cmp(int x, int y) {
    return true;
}

int main(int argc, char **argv) {
    int a[17];
    std::sort(a, a+17, cmp);
    return 0;
}

なお、std::sortは(少なくとも手元の実装では)クイックソートではなくイントロソート。