読者です 読者をやめる 読者になる 読者になる

C++0x ラムダから関数ポインタへの暗黙の変換

C++

ラムダ式によって生成される関数オブジェクトを、同じシグネチャを持つ関数ポインタへ変換できるようになります。
Windows APIOpenGLのような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