Sé que esto funciona:¿Cómo pasar un método de clase como argumento para otra función en C++ y OpenGL?
void myDisplay()
{
...
}
int main()
{
...
glutDisplayFunc(myDisplay)
...
}
por lo que trataron de incluir la función() para una clase que hice myDisplay. Porque quiero sobrecargarlo en el futuro con una clase diferente. Sin embargo, el compilador se queja de que
argument of type 'void (ClassBlah::)()' does not match 'void(*)()' .
Aquí es el lo que trato de hacer:
class ClassBlah
{
....
void myDisplay()
....
}
......
int main()
{
...
ClassBlah blah
glutDisplayFunc(blah.myDisplay)
...
}
¿Alguien sabe cómo solucionar este problema? Muchas gracias.
Eso es genial. ¿Funciona correctamente si memberThreadFunc es virtual y & a apunta a una subclase? – kibibu
Dudo que boost :: bind funcione aquí, ya que seguramente devuelve una estructura que tiene un operador(), algo que glutDisplayFunc no puede usar. – Thanatos
Bind no puede ayudar aquí. La función a la que se llama requiere una devolución de llamada de tipo 'void (*)()'. No se puede usar un objeto de función 0-ary. –