I have a question about forward declaration in C++
class Outer::Inner; // not valid. error
class Outer {
Inner * inn; // not valid, needs forward declaration.
class Inner {
}
}
But when implemented like this:
// class Outer::Inner; // not valid. error
class Outer {
class Inner; // forward-"like" declaration within class
Inner * inn;
class Inner {
}
}
Compiles ok. But I have never seen implementations like this before (because of my small experience in C++), so I'm interested in knowing if this won't cause some kind of error or unpredictable behaviour in the future.