C++ Logo

std-proposals

Advanced search

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

From: Jeremy Rifkin <jeremy_at_[hidden]>
Date: Mon, 30 Sep 2024 20:29:16 -0500
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'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 01:29:22