Как вернуть строку вместо перечисления при сериализации

Я хотел бы сериализовать структуру, в которой есть перечисление. Я прочитал этот пост, который использует другой механизм для сериализация, а здесь я использую mystruct.serialize();

 enum class extEnum 
 {
   mytypeA,
   mytypeB,
 };

struct extStruct
{
   extEnum ta;
   int phone;

   template<class Archive>
   void serialize(Archive& ar)
   {
           ar(CEREAL_NVP(ta),
             CEREAL_NVP(phone)
           );
   }
}

Я сериализую это, используя этот код

extStruct mystruct;
//....
std::stringstream os;
{
    cereal::JSONOutputArchive ar(os);
    mystruct.serialize(ar);
}

Теперь, когда я сериализую это в json, параметр выходит как int. Есть ли способ указать, что поле ar должно быть возвращено в виде строки. У меня есть функция, которая возвращает строку перечисления. Я просто не уверен, как его использовать


person Rajeshwar    schedule 08.01.2021    source источник