Соответствует ли следующий код C++ стандартным?
struct B
{
protected:
struct Type {};
};
struct D : B, B::Type
{};
int main()
{
D d;
return 0;
}
Я пробовал его в Compiler Explorer. MSVC (VS 2017 RTW) принимает его. gcc (7.3) и clang (6.0.0) отклоняют его.