Especially given the proposed resolution to CWG2621, https://cplusplus.github.io/CWG/issues/2621.html, it is rather glaring that "using enum" does not follow the lookup rules of elaborated-enum-specifiers (allows typedefs naming enum types) but is subject to syntactic restrictions for elaborated-enum-specifiers (does not allow for typedefs that are alias template specializations).
Change the grammar from:
using elaborated-enum-specifier ;
to:
using enum nested-name-specifieropt identifier ;
using enum nested-name-specifieropt simple-template-id ;
Especially given the proposed resolution to CWG2621, https://cplusplus.github.io/CWG/issues/2621.html, it is rather glaring that "using enum" does not follow the lookup rules of elaborated-enum-specifiers (allows typedefs naming enum types) but is subject to syntactic restrictions for elaborated-enum-specifiers (does not allow for typedefs that are alias template specializations).
Change the grammar from:
to: