Имейте в виду, что вы не можете просто сравнить строки текста. Вам придется анализировать код, таким образом, вы также можете обнаружить сегменты, которые семантически правильны, но могут иметь разные именованные идентификаторы.
Например, учитывая две функции, которые эквивалентны, но используют разные идентификаторы, текстовый поиск не увидит их как идентичные, но синтаксический анализатор может.
Также обратите внимание, что написание синтаксического анализатора C ++ не является тривиальной задачей, даже с учетом грамматики. Я предлагаю совет других и ищу инструмент для этого. Также ищите инструменты рефакторинга.