An enumeratation is a distinct type, but it can be serialized by
specializing x::serialization::serialize_integer_type:
enum errmsg_t {
// ...
};
namespace x:: serialization {
template<> class serialize_integer_type<errmsg_t> {
public:
typedef char int_t;
};
};
After declaring the above specialization, instances of
errmsg_t can be serialized and deserialized
normally. This example uses char values for
serializing this enumeration type. Any natural integer type may be
declared for int_t. The natural integer type
must, of course, be wide enough to represent all values of the
enumerated type.
LIBCXX_SERIALIZE_ENUMERATION(errmsg_t, char);
This macro expands to the above definition, and is the preferred way to declare a serializable enumeration.