Listing 9

// file.h
struct day_of_week : reflect_enum {
    enum type {
        mon, tue, wed, thu, fri, sat, sun
    };
    day_of_week() : base( init()
        (mon, "monday")
        (tue, "tuesday")
        (wed, "wednesday")
        (thu, "thursday")
        (fri, "friday")
        (sat, "saturday")
        (sun, "sunday")) {}
};
// file.cpp
register_reflect r("day_of_week", day_of_week() );