Il tipo di finestre OpenGL a cui mi riferisco è come GLFW, GLUT, SDL, ecc.
Immagina tre programmi C ++: (ignora la sintassi)
Gioco A:
class Game
resize()
keyEvent()
Gioco B:
resize()
keyEvent()
Gioco C:
class Key
event()
class Display
resize()
In A, tutto è in una classe, in B niente è in una classe, e in C i due eventi hanno le loro classi. Un altro che non viene mostrato è la sottoclasse di una classe "Game" fornita che ha sovraccarico le funzioni predefinite.
Mi piacerebbe qualsiasi mezzo ragionevole che permetta alla libreria principale di delegare a ciascuno di questi tre casi. La soluzione non dovrebbe richiedere la memorizzazione separata di un parametro "this".
Ho pensato ad un paio di idee, una è un modo di mappare la funzione in un funtore. Un altro era lambda. Lambdas non va bene, perché non sono ancora ampiamente implementati. (I compilatori di scelta sono VC 2010, gcc (ultima versione stabile) e il clang di Apple).
Qualsiasi nuova funzionalità di C ++ 2011 ampiamente implementata è ragionevole.
Un signore dell'università locale ha suggerito qualcosa di simile al funtore, ma non ricordo la funzione di cui stava parlando.