Well, as far as I know, you can't do it with G++ (MSVC maybe). What would need to be done is some sort of a forward declaration of your private enum, but forward declaring enums doesn't comply to ansi c++, and therefore doesn't work with G++. (plus, I don't know how an anonymous enum could be forward declared anyway).
You can have multiple public: and private: sections in a class. What I would do is something like this:
// public interface
// the rest of the private functions & variables
In my opinion, that's very readable.