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