ラムダ式によって生成される関数オブジェクトを、同じシグネチャを持つ関数ポインタへ変換できるようになります。
Windows APIやOpenGLのようなCライブラリとの互換性のための機能ですね。
#include <GL/gl.h> #include <GL/glut.h> int main(int argc, char* argv[]) { glutInit(&argc, argv); glutCreateWindow("Title"); glutDisplayFunc([]{ glClear(GL_COLOR_BUFFER_BIT); glColor3d(1.0, 0.0, 0.0); glBegin(GL_POLYGON); glVertex2d(-0.5, -0.5); glVertex2d(0.5, -0.5); glVertex2d(0.5, 0.5); glVertex2d(-0.5, 0.5); glEnd(); glFlush(); }); glClearColor(0.0, 0.0, 1.0, 1.0); glutMainLoop(); }
N3052 Converting Lambdas to Function Pointers