Мне нужно сделать сопоставление между двумя наборами перечислений. Соответствие между перечислениями один к одному.Отображение перечисления в C++
Например
Первый набор:
Enum1{A, B, C, D};
Enumx...
Enumy...
Второй набор:
Enum2{A2, B2, C2, D2};
Enumx2...
Enumy2...
Функция карта:
Enum1 map(Enum2);
Enumx map(Enumx2);
Enumy map(Enumy2);
Я ищу элегантный манера делать это карта. Могу ли я использовать специализированную специализацию? или перечисления рассматриваются как целые числа?
Пример:
class MapHelper{
public:
template<typename From, To>
static To map(From from);
template<>
static Enum1 map<Enum2, Enum1>(Enum2 from){
return static_cast<Enum1>(from);
}
};
Как далеко вы пришли? Что вы пробовали? Каковы конкретные проблемы, которые у вас были? :) –
Проблема, с которой я столкнулся, заключалась в том, что я должен указать также тип возвращаемого значения и параметризовать функцию с двумя типами, я хотел бы параметризовать ее только с одним и иметь карту типов позади, но я не знаю, как это сделать Это. – yonutix
Пожалуйста, вы можете показать нам свое частичное решение? Таким образом, мы можем быть уверены, что мы говорим об одном и том же и предлагаем помощь с правильными проблемами :) –