Subject. This code compiles on ICC 13 update 1 on windows, but it must not bacause 'A::foo' not accessible because 'B' uses 'private' to inherit from 'A'.
Yes we should give an accessibility error for this when imiiating more recent Microsoft compilers. It looks like MSVC++ 98 and earlier had a bug where they allowed this and we are incorrectly imitating this bug for all microsoft versions. I have entered DPD200239865 in our bug tracking system to fix this. Thanks for reporting it.