C++ Logo

std-proposals

Advanced search

Re: [std-proposals] A draft for a std::arguments proposal

From: Andrey Semashev <andrey.semashev_at_[hidden]>
Date: Tue, 01 Oct 2024 14:00:22 +0300
On October 1, 2024 4:29:20 AM Jeremy Rifkin <jeremy_at_[hidden]> wrote:

> Hi,
>
>> What's the distinction? Conventionally, command line is the executable
>> name followed by arguments, and that's exactly what argv is. My
>> understanding that the proposed std::arguments (however it is named) is
>> equivalent to argv, i.e. std::arguments[0] produces the executable name.
>> Is it not?
>
> I was thinking of interfaces like GetCommandLineW where the command line
> is given as a string rather than a series of arguments.
>
> Some naming in other languages:
> - Python: sys.argv
> - Go: os.Args()
> - Rust: std::env::args
> - Swift: CommandLine.arguments
> - Ruby: ARGV
> - C#: Environment.GetCommandLineArgs()
> - Haskell: getArgs
> - Ada: Ada.Command_Line.Argument
>
> I think you're right that command line is common nomenclature and
> shouldn't be confusing, though they the interface for arguments usually
> also includes "arg" somehow. I'll probably leave the spelling as
> std::arguments for now and include the alternative spellings discussed
> here in the paper.

I think it would be better to use the name we actually like in the proposal
and leave references to other proposals that used other names, as well as
newly invented alternatives, in a separate section. Otherwise, if the
proposal gets accepted, we may get something we're not happy with.


> I'm sure it will be a bikeshedding topic one way or
> the other :)
>
> Cheers,
> Jeremy
>
>
>
>
> On Sep 30 2024, at 6:12 pm, Andrey Semashev via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
>
>> On 10/1/24 01:55, Jeremy Rifkin wrote:
>>>
>>>> I think, std::arguments name is too generic and may encroach on
>>>> something
>>>> associated with function arguments in the future. And the name is
>>>> confusing
>>>> today for the same reason.
>>>
>>> Good points. I went with std::arguments because that's the form the
>>> committee had previously considered.
>>>
>>> I think program_options and command_line would be confusing, the first
>>> because of being different from Boost.ProgramOptions and the second
>>> because it's not the full command line, just arguments
>>
>> What's the distinction? Conventionally, command line is the executable
>> name followed by arguments, and that's exactly what argv is. My
>> understanding that the proposed std::arguments (however it is named) is
>> equivalent to argv, i.e. std::arguments[0] produces the executable name.
>> Is it not?
>>
>> --
>> Std-Proposals mailing list
>> Std-Proposals_at_[hidden]
>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals

Received on 2024-10-01 11:00:28