Creo que la capacidad de referenciar estructuras anidadas fuera de la estructura se eliminó en C++ para mejorar el ocultamiento de datos. Si necesita acceder a una estructura anidada externamente, probablemente no debería ser una estructura anidada en primer lugar.
Wikipedia dice: "En C y C++ se pueden definir tipos de estructuras anidadas, pero el alcance se interpreta de manera diferente (en C++, una estructura anidada se define únicamente dentro del alcance/espacio de nombres de la estructura externa)." (http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B). No dice por qué, pero al menos reconoce la diferencia.
Sin embargo, puede usar el operador de resolución del espacio de nombres para acceder a la estructura.
En C++ usaría 'a :: b var;' –
De alguna manera, nunca me di cuenta de que había una diferencia ... – Mehrdad
e operator :: presentado solo en C++ junto con la noción de diferentes ámbitos? – Kos