Estoy en el proceso de implementar una envoltura independiente de plataforma para bibliotecas cargadas dinámicamente. Por supuesto, cuando cargo funciones desde las bibliotecas, necesito almacenarlas como punteros para uso futuro. Pensé en usar boost :: function para eso en lugar de los punteros de función normal. Claro, eso aumentará el tiempo de compilación, pero eso no es lo que temo. Más bien:boost :: función de rendimiento en tiempo de ejecución
¿Cuál es el costo indirecto introducido por la función boost :: cuando llama a la función almacenada? ¿Hay alguno? ¿Como es de grande?
Supongo que no tendré mucha sobrecarga al llamar a tales funciones de vez en cuando, sin embargo, ¿qué hay de las funciones que se llaman mucho? (ejemplo extremo, glVertex
en una biblioteca GL cargada). ¿Cuánto afectaría el rendimiento?
Source-diving boost no respondió mucho:>.
Además, si depende del compilador, estoy interesado principalmente en GCC y MSVC.
La respuesta es: le dolería mucho, no lo use. – user1095108