title: Base template class data members are not visible in derived template class?
body: <p>Consider the following C++ code, </p>
  
  <pre><code>template &lt;typename Derived&gt;
  struct A
  {
      bool usable_;
  };
  
  template &lt;typename Derived&gt;
  struct B : A&lt; B&lt;Derived&gt; &gt;
  {
      void foo()
      {
          usable_ = false;
      }
  };
  
  struct C : B&lt;C&gt;
  {
      void foo()
      {
          usable_ = true;
      }
  };
  
  int main()
  {
      C c;
  }
  </code></pre>
  
  <p>I got compilation error:  In member function <code>void B&lt;Derived&gt;::foo()</code>:</p>
  
  <blockquote>
    <p>template_inherit.cpp:12: error: 'usable_' was not declared in this
    scope.</p>
  </blockquote>
  
  <p>Why is that ? Any good fix ?</p>