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");
 };
};