Есть два enum для двух очень похожих, но не пересекающихся категорий.
И стандартные map’ы где хранятся элементы:
struct Entity {
const int v1;
int v2;
/* дальше кучка методов с формулами */
};
enum class First { ... };
enum class Second { ... };
std::map<First, Entity> FirstMap;
std::map<Second, Entity> SecondMap;
Хочется написать некий класс View, который будет запоминать часть данных от Entity на момент создания View. А также возможность обновить представление. Что то типа:
View( First t, const Entity & e ){...}
View( Second t, const Entity & e){...}
Как лучше хранить t
внутри объекта View? т.к. без этого не сделать «обновление данных» в View, надо знать, что за сущность отображается.
Отображение First отличается от отображения Second, поэтому и затык.
Про std::variant
и его аналоги в курсе, но вдруг найдется более лучше решение, т.к. здесь всего 2 возможных типа.
Или можно по другому организовать хранение данных, чтобы такая проблема вообще не возникла? Буду рад любым идеям.