最终 class 的嵌套 class 是否自动最终?

Is a nested class of a final class automatically final?

我在最终 class 中嵌套了 class。这个嵌套 class 被 C++ 标准认为是最终的,还是仍然可以从内部 class 继承?

class A final
{
public:
   class B
      {
      ...
      };
   class C: public B;  // is this allowed (MSVC accepts it)?
   ...
};

class D: public A::B;  // is this allowed (MSVC accepts it)?

Visual studio 两者都接受。为什么?

Visual studio accepts both. Why?

因为它是合法的。标准中没有任何内容使嵌套的 class 成为最终的,仅仅因为它包含的 class 是最终的。