Making an unknown friend
template
class List
{
protected:
class a {
int x;
int y;
private:
friend class b;
//Run this- it now will compile for you
template class b; //<----- forward declaration
template
class List
{
protected:
class a {
int x;
int y;
private:
friend class b; // <------------ Add
};
template class b {
int z;
U y;
};
public:
List() {
a* ptr = (a *)new unsigned char[sizeof(a)];
}
};
int main() {
List mylist;
}