Имеется некоторый класс (Float2) с конструктором., который принимает несколько параметров. Например:
void Float2(float x, float y);
Далее возникла потребность принимать в качестве аргументов другие типы данных.
Можно было бы использовать шаблон
template <typename T>
, но требуется ограничить типы - в моём случае только
float и
string.
Да, можно написать как то так
void Float2(float x, float y);
void Float2(float x, string y);
void Float2(string x, float y);
void Float2(string x, string y);
Однако, о помимо такого класса, есть ещё и аналогичный с 4-мя аргументами, а это уже 16 вариаций конструкторов. Так дело не пойдёт.
Вопрос: возможно ли описать шаблон типа так, чтобы он был ограничен только типами
float и
string, а сам конструктор сводился к виду
void Float2(T x, T y);
или чему-то подобному