質問です。

何らかのタイプ設定をenumでセットするクラスがあるとすると、通常はこういう構成になると思います。

class Hoge{
public:
  enum TYPE {A,B,C};
  Set(TYPE type);
private:
  TYPE type_;
};

Hoge hoge; hoge.Set(Hoge::A); hoge.Set(Hoge::B); hoge.Set(Hoge::C);

Setを呼び出すたびにHoge::という修飾が必要なのがわずらわしいので、
以下のように名前空間を利用できないだろうかと考えています。
なお、名前空間名は必ずクラス名をすべて大文字にしたもの、で統一するつもりです。

namespace HOGE { enum TYPE {A,B,C}; }
class Hoge{
public:
  Set(HOGE::TYPE type);
private:
  HOGE::TYPE type_;
};

using namespace HOGE; Hoge hoge; hoge.Set(A); hoge.Set(B); hoge.Set(C);

クラス利用者がusingディレクティブによって必要に応じて冗長な修飾を
削れるため、後者のほうが、優れた手法だと思っています。
なにか見落としている欠点などありますでしょうか?