9 Declarations [dcl.dcl]

9.7 Enumerations [enum]

9.7.2 The using enum declaration [enum.udecl]

A using-enum-declarator names the set of declarations found by lookup ([basic.lookup.unqual], [basic.lookup.qual]) for the using-enum-declarator.
The using-enum-declarator shall designate a non-dependent type with a reachable enum-specifier.
A using-enum-declaration is equivalent to a using-declaration for each enumerator.
[Note 1: 
A using-enum-declaration in class scope makes the enumerators of the named enumeration available via member lookup.
[Example 1: enum class fruit { orange, apple }; struct S { using enum fruit; // OK, introduces orange and apple into S }; void f() { S s; s.orange; // OK, names fruit​::​orange S::orange; // OK, names fruit​::​orange } — end example]
— end note]
[Note 2: 
Two using-enum-declarations that introduce two enumerators of the same name conflict.
[Example 2: enum class fruit { orange, apple }; enum class color { red, orange }; void f() { using enum fruit; // OK using enum color; // error: color​::​orange and fruit​::​orange conflict } — end example]
— end note]