У меня есть шаблонный класс, который использует глобальное перечисление с некоторыми режимами, которые мне нужны в качестве параметров для функций-членов этого класса. Я хочу написать специализацию этого класса, которая требует, чтобы значения этого перечисления были переведены. В настоящее время я реализую функцию преобразования, которая в основном представляет собой оператор switch, который преобразует общие значения перечисления в значения, требуемые специализацией. . что-то вроде этого:Отображение перечислений в специализированных специализациях
enum Modes { ModeA, ModeB, ModeC };
template<typename Foo>
class tClass
{
void bar (Modes _mode)
{
do_stuff(_mode);
}
}
template<>
class tClass<specializedFoo>
{
void bar (Modes _mode)
{
do_Stuff(convertMode(_mode));
}
}
В memberfunctions называют часто, который вводит дополнительный вызов функции каждый раз при создании экземпляра специализации используется, которая, по моему мнению, должны быть расторгнуты, так как я уже знаю точный тип этого шаблона параметр.
Есть ли способ избежать функции перевода и, следовательно, вызова дополнительной функции?
+1. Это в основном это – Sam