Зараз я працюю над проектом, і у мене є наступне питання.
У мене є метод C ++, над яким я хочу працювати двома різними способами:
void MyFunction()
{
foo();
bar();
foobar();
}
void MyFunctionWithABonus()
{
foo();
bar();
doBonusStuff();
foobar();
}
І я хотів би не дублювати мій код, оскільки фактична функція набагато довша. Проблема полягає в тому, що я ні за яких обставин не повинен додавати час виконання програми, коли MyFunction викликається замість MyFunctionWithABonus. Ось чому я не можу просто мати логічний параметр, який я перевіряю за допомогою порівняння C ++.
Моя ідея полягала б у використанні шаблонів C ++ для практично дублювання мого коду, але я не можу придумати спосіб, коли б у мене не було додаткового часу на виконання, і мені не потрібно дублювати код.
Я не фахівець із шаблонами, тому, можливо, чогось мені не вистачає.
Хтось із вас має ідею? Або це просто неможливо в C ++ 11?