2016-04-19 16 views
0

У меня есть класс C++, который содержит функцию draw, которую я хочу передать glutDisplayFunc(). glutDisplayFunc принимает указатель на функцию (void (*)()) в качестве аргумента. Я пробовал:glutDisplayFunc() с указателем на функции memeber

Model myModel(pathToTextures); 
    //Model contains the Draw function that draws the vertices and the textures 
    std::function<void(void)> myfunc=std::bind(&Mymodel::Draw,&modelna); 

    glutDisplayFunc(myfunc); 

компилятор не может преобразовать указатель std :: function в требуемое. Как я могу обойти этот барьер указателя функции-члена?

+0

Я только что попробовал другой метод, но он тоже не работает: glutDisplayFunc ([& Mymodel]() {Mymodel.Draw();}) – Ricko

+0

Это не сработает, потому что lambdas не могут быть конвертированы в указатели функций, если они захватывают что угодно. –

ответ

0

Я полагаю, что библиотека asmjit может сделать это за вас.