В целом принято считать, что программирование с копированием и вставкой - это плохая идея, но лучший способ справиться с ситуацией, когда у вас есть две функции или блоки кода, которые действительно делают, должны быть разными в всего лишь несколько способов сделать их чрезвычайно беспорядочными?
Что делать, если код по существу один и тот же, за исключением нескольких незначительных вариаций, но эти незначительные вариации не относятся к вещам, которые легко разложить путем добавления параметра, методов шаблона или чего-то подобного?
В более общем плане, вы когда-нибудь сталкивались с ситуацией, когда вы могли бы признать, что небольшое копирование и вставка кодирования было действительно оправдано.