Есть объемная иерархия классов, реализующая статический полиморфизм через CRTP.
template <typename Derived>
class BasicPacket{
public:
// ...
};
class SpecificPacket : public BasicPacket<SpecificPacket> {
// ...
};
// + много классов
Требуется реализовать генерацию классов в рантайме, т.е. динамический полиморфизм.
В общих чертах, как-то так:
SomeBasicPacket* get_packet(int id){
// здесь switch
}
Менять существующую модель крайне нежелательно
В принципе, есть идея велосипеда, как "обернуть" статический полиморфизм в динамический.
Но интересует, есть ли для этого более-менее стандартные средства?