Как сделать разную обработку для разных типов в шаблоне функции?
Здравствуйте! Подскажите как реализовать с помощью шаблонов. На данный момент имеется две функции, которые выполняют практически одинаковую работу. Кроме того, функции отличаются типом входных данных: одна принимает только целые значения, а другая только double. Казалось бы просто объединить их в одну с использованием шаблона, но есть нюанс. Дело в том, что в зависимости от типа данных надо произвести разные действия над данными. Данные поступают от железки и передаются в целочисленном виде, а программа знает коэффициент преобразования (1, 0.1, 0.01 и т.д.). Однако, некоторые элементы управления в программе позволяют задавать параметры в формате double. Соответственно у меня есть две функции, которые в зависимости от типа данных, либо применяют умножение на коэффициент, либо нет. Также почему нельзя напрямую применить шаблон - т.к. входные параметры устанавливаются сразу на 2 элемента управления - один принимает только целые числа, а другой принимает double. Вот и приходится домножать где-надо, а где надо делить. Например слайдер принимает только целые и его значения от 0 до 100, а spinbox устанавливаются значения с коэффициентом 0,1, т.е. в диапазоне от 0 до 10.
Подскажите целесообразно ли вообще в данной ситуации использование шаблонов? и если да, то как описать это?
По описанию - шаблоны только усложнят код, а их цель обратная.
Городить шаблоны и условия, только чтобы не писать второй раз три строчки - нелепо.
Если же у вас действительно значительная часть кода повторяется в двух функциях - имеет смысл вынести повторяющийся код в отдельную функцию. И вот ее уже, если угодно, сделать шаблонной.
Ну, и вычисления я бы не стал загонять в шаблон в любом случае. Математика в "крестах" и так требует осторожности, а шаблон вас фактически лишит возможности ее нормально отлаживать, если что.