今までenumにスコープ持たせるために、私はこういうコードを書いていましたが
struct Color { enum { Blue, Yellow, Red }; }; int color = Color::Blue;
Boost 1.40のBOOST_SCOPED_ENUMのソース読んでたら、どうやらこれでいいらしい。
struct Color { enum enum_t { Blue, Yellow, Red }; }; Color::enum_t color = Color::Blue;
あとは先行宣言さえできればすごく便利なんだけど。