C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Floating an idea: int main(std::span<std::string_view> args)

From: Jeremy Rifkin <jeremy_at_[hidden]>
Date: Sat, 7 Sep 2024 15:52:01 -0500
>> I think
>> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1275r0.html
>> is a potentially more useful change, as it enables considerably more
>> than we'd get from just wrapping the args in a span.

Thanks, I think that makes a lot of sense. I might try to pursue that if
no one else has picked it up.

Jeremy

On Sep 7 2024, at 3:16 pm, Jonathan Wakely <cxx_at_[hidden]> wrote:

>> On Sat, 7 Sept 2024 at 16:38, Jeremy Rifkin via Std-Proposals
>> <std-proposals_at_[hidden]> wrote:
>>
>>> Hello,
>>>
>>> I'd like to propose adding int main(std::span<std::string_view>
>>> args) as
>>> a standard signature for main.
>>>
>>> Motivation:
>>> - Modernization
>>> - Ergonomics
>>> - Teachability
>>> - Modern C++ through and through instead of 'what's a char**' and
>>> 'argv[1] == "--help" is a footgun, beware'
>>
>> I think
>> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1275r0.html
>> is a potentially more useful change, as it enables considerably more
>> than we'd get from just wrapping the args in a span.
>>
>>
>>
>>>
>>> Considerations:
>>> - There would be slight startup overhead in constructing the
>>> std::string_views and underlying array of string views, however, this
>>> would be entirely opt-in
>>> - It would probably add some implementation complexity
>>> - This would be an aspect of the core language which depends on the
>>> standard library. I don't love that, but, there is precedence for this
>>> sort of thing
>>> - Direct mutability of the argument contents would be lost
>>>
>>> I would make a reference implementation as part of the proposal.
>>>
>>>
>>> Cheers,
>>> Jeremy
>>> --
>>> Std-Proposals mailing list
>>> Std-Proposals_at_[hidden]
>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals

Received on 2024-09-07 20:52:09