Actualmente estoy trabajando en un proyecto y tengo el siguiente problema.
Tengo un método C ++ que quiero trabajar de dos formas diferentes:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
Y me gustaría no duplicar mi código porque la función real es mucho más larga. El problema es que no debo bajo ninguna circunstancia agregar tiempo de ejecución al programa cuando se llama a MyFunction en lugar de MyFunctionWithABonus. Es por eso que no puedo tener un parámetro booleano que verifico con una comparación de C ++.
Mi idea habría sido usar plantillas C ++ para duplicar virtualmente mi código, pero no puedo pensar en una forma de hacerlo en la que no tenga tiempo de ejecución adicional y no tenga que duplicar el código.
No soy un experto en plantillas, por lo que es posible que me falte algo.
¿Alguno de vosotros tiene una idea? ¿O es eso simplemente imposible en C ++ 11?