typedef enum {
err1 = 0x1,
err2 = 0x2,
...
} HOGE;

として

HOGE a;
a |= e1;

というのをCではよく使ってたんだけど
C++でコンパイルすると
|=のところで演算子定義エラーになるんですが、
C++のenumでは代入しかつかえないんですか?
またenumを再定義してビット演算も使えるように
することってできますか?