Я считаю, что этот абзац как-то связан с простым фрагментом ниже.
Он не связан с этим фрагментом, поскольку спецификатор enum enum E { i = 1 }
не содержит спецификатора вложенного имени.
Обратите внимание, что S::E::i
и S::i
ниже являются именами-перечислениями
Это не имена enum-head. enum-head-names находятся только внутри enum-head, которые находятся только внутри enum-спецификаторов. Это просто квалифицированные идентификаторы, которые состоят из спецификатора вложенного имени и идентификатора, присваивающего имя перечислителю.
Пример спецификатора перечисления, у которого enum-head-name действительно есть спецификатор вложенного имени, и к которому применяется указанное в кавычках правило:
struct S
{
enum E : int;
// ^^^^^^^^^^^^ opaque-enum-declaration
};
enum S::E : int { i = 1 };
// ^^^ nested-name-specifier
// ^^^^ enum-head-name
// ^^^^^^^^^^^^^^^ enum-head
// ^^^^^^^^^^^^^^^^^^^^^^^^^ enum-specifier