質問です。
私の環境はVC++2010、2008ですが、C++の言語全体として
答えていただけると幸いです。

enum E
{
E1,
E2,
}:

のようなenumがあったとき、E2 | E1 は、int になるらしいです。
ということは、

E e = E1 | E2;

に警告が出ます。
この辺のenumの取り扱いとして、

1. ビット演算のような用法 ( e = E1 | E2; )
2. まさにenum的な用法 (どれかひとつ)

ざっくりと、2種(または混合)があると思うのですが、この辺、何かしら
指針、指標のようなもの、もしくはベンダからの情報等はあるのでしょうか?

ベンダー依存でもいいので、何かしら情報があれば、よろしくお願いします。