この単純化された例があるとしましょう:
クラスのシリアル化と逆シリアル化を行うコードがいくつかあります...最初のバイトはクラスタイプをエンコードする列挙型です(それらはすべて同じベースから継承されます)。
Color* c;
auto classType == read_byte(buffer);
switch (classType)
case eBlue:
{
c = new Blue(buffer);
}
case eGray:
{
c = new Gray(buffer)
}
//...
スイッチを置き換えることができるように、列挙型から型へのマップを持つ方法はありますか
c = new enum2Type(buffer);
edit ofc 私は raw ptr IRL を決して使用しません。:)