title: Forward declare a inner class type, is it possible?
body: <p>Ok here is the situation. </p>
  
  <pre><code>//foo.h
  struct A1{ 
   struct A2{};
  };
  
  //bar.h
  #include "MyString.h"
  class A2; //note, not including foo.h
  TEMPLATE_INSTIANTIATE_MAP_OF_TYPE(String,A2*); //assume compiler doesn't do this
  </code></pre>
  
  <p>Is it possible to make the above situation work? I try to create a <code>MyMap&lt;String,A1::A2*&gt; m;</code> but the compilers throws undefined reference errors. Is it possible to make the above work without having bar.h import foo.h?</p>