В настоящее время я работаю над проектом, и у меня есть следующая проблема.
У меня есть метод С++, который я хочу работать двумя разными способами:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
И я бы хотел не дублировать мой код, потому что фактическая функция намного длиннее. Проблема в том, что я ни при каких обстоятельствах не должен добавлять время выполнения программы, когда MyFunction вызывается вместо MyFunctionWithABonus. Вот почему я не могу просто иметь логический параметр, который я проверяю с помощью сравнения на С++.
Моей идеей было бы использовать шаблоны С++ для практически дублирования моего кода, но я не могу придумать способ сделать, в котором у меня нет дополнительного времени выполнения, и мне не нужно дублировать код.
Я не эксперт с шаблонами, поэтому я могу что-то пропустить.
Есть ли у вас какая-нибудь идея? Или это просто невозможно в С++ 11?