Or like that:
```` C++
class MediaType
{
public:
  MediaType(void);
  MediaType(std::string);

  inline bool operator==(const MediaType& other) { return m_type == other.m_type; }
  bool operator==(const std::string& other);
private:
  enum enumMediaType
  {
    MediaTypeNone,
    MediaTypeMusic,
    MediaTypeArtist,
    MediaTypeAlbum,
    /* more types */ 
  } m_type;
}
````
It will be passed as fast as enum, compared as fast as enum and will be very flexible.