title: CRTP refer to typedef in derived class from base class
body: <p>I have following code:</p>
  
  <pre><code>template &lt;typename T&gt;
  class A
  {
      typedef typename T::Type MyType;
  };
  
  template &lt;typename T&gt;
  class B : public A&lt;B&lt;T&gt;&gt;
  {
      typedef T Type;
  };
  </code></pre>
  
  <p>When I try to instantiate B, I get following error message using MSVS 2015:</p>
  
  <pre><code>'Type': is not a member of 'B&lt;int&gt;'
  </code></pre>
  
  <p>Is this code valid C++ or is MSVS right?</p>