Hi folks. I'm learning the basics of the serialization library right now. I'd like to know if there's a known tactic for archiving enums with textual tokens, rather than the int value itself. For instance, consider the following code: I set up an enum called status_t, and a class Foo that has a status_t as a data member. In Foo's serialize function, I record the status_t (myStatus).

 

enum status_t { ON, OFF };

class Foo {

  status_t myStatus;

  friend class boost::serialization::access;

  template<class Archive> serialize(...) {

    ar & BOOST_SERIALIZATION_NVP(myStatus);

  }

};

 

The xml output file looks sort of like this:

<Foo>

  <myStatus>0</myStatus>

</Foo>

 

The file that is generated when serialize() is invoked certainly works, but the value for myStatus appears as an int. What if I want to convert the int to a string in the archive? That is, I want the xml file to look like this:

 

<Foo>

  <myStatus>ON</myStatus>

</Foo>

 

Are there any good strategies for doing this?

 

Thanks,

--Steve (sgross@sjm.com)