<div dir="ltr"><div dir="ltr">On Wed, Oct 13, 2021 at 6:15 PM Andrey Zherikov via Digitalmars-d-announce <<a href="mailto:digitalmars-d-announce@puremagic.com">digitalmars-d-announce@puremagic.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Thursday, 14 October 2021 at 00:35:11 UTC, Bill Baxter wrote:<br>
> On Wed, Oct 13, 2021 at 5:30 PM Andrey Zherikov via <br>
> Digitalmars-d-announce < <a href="mailto:digitalmars-d-announce@puremagic.com" target="_blank">digitalmars-d-announce@puremagic.com</a>> <br>
> wrote:<br>
><br>
>> On Wednesday, 13 October 2021 at 19:26:49 UTC, Andrei <br>
>> Alexandrescu wrote:<br>
>> > Cool!<br>
>> ><br>
>> > One note - gflags <br>
>> > (<a href="https://opensource.google/projects/gflags" rel="noreferrer" target="_blank">https://opensource.google/projects/gflags</a>) allows modules <br>
>> > to define their own flags in a decentralized manner. I've <br>
>> > always thought this is a major feature missing from <br>
>> > std.getopt, but never got around to it. It would be great if <br>
>> > argparse would add such support.<br>
>><br>
>> This is an interesting approach. I'm not a fan of it but I'll <br>
>> take a look at whether this can be supported.<br>
>><br>
><br>
> Not sure how much change there is over "classic" gflags, but <br>
> <a href="https://abseil.io/docs/cpp/guides/flags" rel="noreferrer" target="_blank">https://abseil.io/docs/cpp/guides/flags</a> is what google now uses <br>
> internally.<br>
><br>
> --bb<br>
<br>
Abseil version suggests not to put flags into multiple .cpp files:<br>
- `Allows distributed declaration and definition of flags, though <br>
this usage has drawbacks and should generally be avoided`<br>
- `Prefer to define flags only in the file containing the <br>
binary’s main() function`<br>
- `Prefer to reference flags only from within the file containing <br>
the binary’s main() function`<br>
<br>
So I'm a bit confused about supporting this use case<br></blockquote><div><br></div><div>Yeh, it's definitely a mixed bag.  It can be very convenient to be able to put the flag right near point of use without having to do any plumbing.  But sometimes it can be frustrating given that "flags" are essentially a single global namespace that people don't always realize is a global namespace.  Quite annoying when you go to add something like a "--start_time" flag and find that some random .cc file in a library already defines that flag for their own purposes.</div><div><br></div><div>--bb</div></div></div>