https://dlang.org/spec/enum.html
"An empty enum body (For example enum E;) signifies an opaque enum - the enum members are unknown."
The specification is very unclear here:
What this "unknown" does mean? How does "unknown" differ from "none" in this context?
The specification does not define the meaning of unknown. Formal specifications should not use a word with no clear meaning.
Comment #1 by kinke — 2020-08-19T16:23:37Z
That's very subjective - I find it crystal-clear, especially with the 'opaque' hint - it's just like an opaque `struct S;` declaration. Sometimes, a full declaration isn't needed, e.g.:
extern(C++):
enum E : int;
void foo(E);