Opaque Enum Declaration is an enum declaration (specifying the name and the underlying type) that does not list the enumerators or their values.
This gives us the benefit of an enumeration, a strongly typed integral type without implicit conversion semantics (for scoped enumerations), without exposing the enumerator names or their values as part of the API.
Compiler Explorer link: https://compiler-explorer.com/z/h54d4zGv9