Another use case for __traits(docComment)
Dennis
dkorpel at gmail.com
Thu Nov 14 20:24:46 UTC 2019
On Thursday, 14 November 2019 at 17:18:40 UTC, Jab wrote:
> Should we have not added extern(C++, identifier) to D to begin
> with?
> Should they have not been given that feature because down the
> line there's going to be numerous bugs with it that will need
> to be fixed and people will then be wanting more and more
> changes to it?
I haven't interfaced with C++ so I can't judge that, but from a
spectator of the discussion point of view `extern(C++, "ns")`
seemed like a worthy addition.
I only brought this up as an example to show how these things
don't end with "just this one small addition" like Adam makes it
out to be in the case of __traits(docComment).
> Was kind of curious what that looks like with a comment from
> phobos, I think it's worse than I expected.
So I wouldn't use that for Phobos, but export Phobos
documentation to a preferred file format and use that. What would
you do with the raw ddoc comment anyway, print it in the terminal
as-is with $() and all? Re-implement macro parsing in CTFE?
The UDA duplication is acceptable when you are writing some small
comments yourself:
```
struct WindowSettings
{
@("The default width of the window in pixels.")
int width = 1280; /// default window width in pixels
@("The default height of the window in pixels.")
int height = 720; /// default window height in pixels
}
```
If you want to make a GUI for setting the width and height based
on the struct then you want to poll the UDA string to get a nice
description for the user.
And I know it is tempting to want to combine the two, based on
the availability of __traits(docComment):
```
struct WindowSettings
{
int width = 1280; /// The default width of the window in
pixels.
int height = 720; /// The default height of the window in
pixels.
}
```
But before you know it you deal with all kinds of issues, like
the user-facing comment and the programmer-facing comment
diverging, needing to strip the leading space, the formatter
changing it to a multi-line comment introducing other whitespace,
wanting to the comment to be generated at CTFE so you have to
turn back to UDA's anyway etc.
And it may just turn out that simple > clever all along.
More information about the Digitalmars-d
mailing list