Ok here is the situation. 

```
//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

```

Is it possible to make the above situation work? I try to create a `MyMap<String,A1::A2*> m;` but the compilers throws undefined reference errors. Is it possible to make the above work without having bar.h import foo.h?