Я использую Visual Studio 2012, и у него есть случаи, когда мы добавляли параметры шаблонов в класс «просто», чтобы ввести «точку шва», чтобы в модульном тесте мы могли заменить эти части на фиктивные объекты.
Как вы обычно вводите точки стыка в C ++: используя интерфейсы и / или смешивание на основе некоторых критериев с неявными интерфейсами, используя также параметры шаблонов? Одной из причин этого также является то, что при компиляции иногда одного файла C ++ (который включает файлы шаблонов, который может также включать другие шаблоны) получается генерируемый объектный файл, который занимает порядка 5-10 секунд на компьютере разработчика ,
Насколько я понимаю, VS-компилятор также не особенно быстро компилирует шаблоны и из-за модели включения шаблонов (вы фактически включаете определение шаблона в каждый файл, который использует его косвенно, и, возможно, создаете экземпляр этого шаблона каждый раз при изменении то, что не имеет ничего общего с этим шаблоном) могут возникнуть проблемы со временем компиляции (при выполнении инкрементной компиляции).
Каковы ваши способы обработки добавочного (и не только) времени компиляции при работе с шаблонами (помимо лучшего / более быстрого компилятора :-)).