title: Access enumerator of an enum formerly declared as protected
body: <p>For my project I'd like to widen the visibility of an enum formerly declared as protected in the baseclass. </p>
  
  <pre><code>class A { 
  protected:
      enum E { e = 0 };
  };
  
  class B : public A { 
  public:
      using A::E;
  };
  
  int main()
  {
      B::E enum1; // okay
      enum1 = B::e; // fails: test.cpp:3:14: error: A::E A::e is protected
  }
  </code></pre>
  
  <p>The reasons for this are simple:</p>
  
  <ul>
  <li>I don't control the base class, hence I cannot just make <code>E</code> public</li>
  <li>I don't want a huge switch-case statement for translating between a new enum in <code>B</code> and <code>A::E</code></li>
  </ul>
  
  <p>I'd expect(ed) the code to compile just fine.</p>
  
  <p>I'm curious. What's the scientific explanation why the code fails to compile?</p>