¿Cómo crear un contenedor que contenga diferentes tipos de punteros de función en C ++?

Estoy haciendo un proyecto de programación genética lineal, donde los programas se crean y evolucionan mediante mecanismos de evolución natural. Su "ADN" es básicamente un contenedor (he usado matrices y vectores con éxito) que contiene punteros de función a un conjunto de funciones disponibles. Ahora, para problemas simples, como problemas matemáticos, podría usar un puntero de función definido por tipo que podría apuntar a funciones que devuelven un doble y todos toman como parámetros dos dobles.

Lamentablemente esto no es muy práctico. Necesito poder tener un contenedor que pueda tener diferentes tipos de punteros de función, digamos un puntero de función a una función que no toma argumentos, o una función que toma un argumento, o una función que devuelve algo, etc. (obtiene el idea)...

¿Hay alguna manera de hacer esto usando algún tipo de contenedor? ¿Podría hacer eso usando un contenedor que contiene clases polimórficas, que a su vez tienen varios tipos de punteros de función? Espero que alguien pueda dirigirme hacia una solución porque rediseñar todo lo que he hecho hasta ahora va a ser doloroso.

Respuestas a la pregunta(3)

Su respuesta a la pregunta