Obecnie pracuję nad projektem i mam następujący problem.
Mam metodę C ++, którą chcę pracować na dwa różne sposoby:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
I nie chciałbym powielać swojego kodu, ponieważ rzeczywista funkcja jest znacznie dłuższa. Problem polega na tym, że nie mogę w żadnym wypadku dodawać czasu wykonania do programu, gdy wywoływana jest funkcja MyFunction zamiast MyFunctionWithABonus. Dlatego nie mogę po prostu mieć parametru boolowskiego, który sprawdzę za pomocą porównania C ++.
Moim pomysłem byłoby użycie szablonów C ++ do wirtualnego duplikowania mojego kodu, ale nie mogę wymyślić sposobu, w którym nie mam dodatkowego czasu na wykonanie i nie muszę duplikować kodu.
Nie jestem ekspertem od szablonów, więc być może czegoś mi brakuje.
Czy ktoś z Was ma pomysł? A może jest to po prostu niemożliwe w C ++ 11?