Дано:
Библиотека
Есть функция a, внутренняя, снаружи недоступна:
a(int, int, structtype1, int)
{
КОД1
Вызов функции aa, принимающей параметр structtype1
КОД2
}
b(int, int, structtype2, int)
{
КОД1
Вызов функции bb, принимающей параметр structtype2
КОД2
}
За исключением вызова разных функций (aa и bb), функции полностью идентичны. Вызовы внутри неоднократные.
Теперь есть функция c1(), внешняя, вызывается пользователем:
c1(structtype1 st1)
{
КОД3
a(..., st1, ...)
КОД4
}
c2(structtype2 st2)
{
КОД5
b(..., st2, ...)
КОД6
}
Чего хочется:
Функции a и b полностью идентичны, за исключением того что они вызывают разные функции внутри. Хочу слить их в одну, потому что
1) Функции дорабатываются и проблематично держать код обоих синхронизированным.
2) Вообще держать две копии одного кода в проекте как-то не комильфо.
Какие мысли есть? Есть мысль намутить что-нибудь с указателями на функции, но там разный тип параметров...