dlang.org icon indicating copy to clipboard operation
dlang.org copied to clipboard

Opaque enum - it is not explained what is "unknown"

Open dlangBugzillaToGithub opened this issue 5 years ago • 2 comments

Victor Porton (@vporton) reported this on 2020-08-19T14:45:18Z

Transferred from https://issues.dlang.org/show_bug.cgi?id=21178

CC List

  • kinke

Description

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.

dlangBugzillaToGithub avatar Aug 19 '20 14:08 dlangBugzillaToGithub

kinke commented on 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);

dlangBugzillaToGithub avatar Aug 19 '20 16:08 dlangBugzillaToGithub

dlang-bot commented on 2023-02-01T18:56:41Z

@Mateiuss created dlang/dlang.org pull request #3512 "Fix Issue 21178" fixing this issue:

- Fix Issue 21178

https://github.com/dlang/dlang.org/pull/3512

dlangBugzillaToGithub avatar Feb 01 '23 18:02 dlangBugzillaToGithub