enum不让我这么玩?
我想表示若干方向,但是enum不让我用|操作符,说我不合法地把int转换为enum:
// 不要问我NORTH | SOUTH这种情况……enum Direction { OTP_CENTER = 0, OTP_NORTH = 8, OTP_SOUTH = 4, OTP_EAST = 2, OTP_WEST = 1, OTP_NORTH_EAST = OTP_NORTH | OTP_EAST, OTP_NORTH_WEST = OTP_NORTH | OTP_WEST, OTP_SOUTH_EAST = OTP_SOUTH | OTP_EAST, OTP_SOUTH_WEST = OTP_SOUTH | OTP_WEST};Direction which = OTP_CENTER;if (some_condition) which |= OTP_NORTH; // error: invalid conversion from ‘int’ to ‘otp::Direction’ [-fpermissive]