а если внимательнее посмотреть, кто кому friend?
Так protected поля доступны наследнику, разве если этому наледнику написать friend <name class>
То friend классу не должны быть доступны эти поля?
То есть, остальные компиляторы работают некорректно в данном случае?