Here's a cut down custom object type with a working sc_trace with an enumerated type:
typedef enum { IDLE = 0, BUSY } state_t; class MyType { unsigned info; state_t flag; ... inline friend void sc_trace( sc_trace_file *tf, const MyType & v, const std::string & NAME ) { int* iflag = (int*) &(v.flag); sc_trace(tf, v.info, NAME + ".info"); sc_trace(tf, *iflag, NAME + ".flag"); }; };