So che questa cosa funziona:Come passare un metodo di classe come argomento per un'altra funzione in C++ e openGL?
void myDisplay()
{
...
}
int main()
{
...
glutDisplayFunc(myDisplay)
...
}
così ho cercato di includere la funzione() per una classe che ho fatto myDisplay. Perché voglio sovraccaricarlo in futuro con una classe diversa. Tuttavia, il compilatore si lamenta che
argument of type 'void (ClassBlah::)()' does not match 'void(*)()' .
Ecco la cosa che cerco di fare:
class ClassBlah
{
....
void myDisplay()
....
}
......
int main()
{
...
ClassBlah blah
glutDisplayFunc(blah.myDisplay)
...
}
Qualcuno sa come risolvere questo problema? Grazie molto.
Questo è bello. funziona correttamente se memberThreadFunc è virtuale e & a punta a una sottoclasse? – kibibu
Dubito boost :: bind funzionerà qui, poiché sicuramente restituisce una struttura che ha un operatore(), qualcosa che glutDisplayFunc non può usare. – Thanatos
Bind non può aiutare qui. La funzione chiamata richiede una callback del tipo 'void (*)()'. Non è possibile utilizzare un oggetto funzione 0-ary. –