Я работаю на C ++ в Linux.
Мне нужно удалить дублированный код в двух функциях.
Одна функция предназначена для вычислений, а другая — для регистрации.
Есть некоторый код, который дублируется в logging (), что намного дольше, чем computing ().
Дублированный код распространяется в logging () отдельно, что означает, что они не просто копируются и вставляются из computing ().
Мне нужно построчно вычислять дублирующиеся детали, удалять их, а затем заменять необходимые результаты, передавая их в виде параметров из computing () в логирование.
Есть ли эффективные способы справиться с этим?
Посмотрите на функции бок о бок, определите общие блоки кода, а затем разделите эти общие блоки на отдельные методы / функции.
Возможно, не стоит объединять их. Если вы действительно должны, хотя, возможно, одна общая функция с дополнительным bool do_logging
параметр.