「[]で始まり、lamda外のなにものもcaptureしていない
stateless lambda は function pointer に暗黙変換できる」
とあります。
さっそく試してみんよ。
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
const int N = 10;
int data[N] = { 9, 7, 5, 3, 1, 0, 2, 4, 6, 8 };
// qsortの比較関数にlambdaをねじ込む
qsort(data, N, sizeof(int),
[](const void* x, const void* y)->int
{ return *static_cast<const int*>(x) - *static_cast<const int*>(y);}
);
for ( int i = 0; i < N; ++i ) cout << data[i] << ' ';
cout << endl;
}
あー、おもしろいねコレ。C-functionのコールバックにlambdaを指定できちゃうです。