Date: Sat, 7 Sep 2024 10:37:22 -0500
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'
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
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'
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
Received on 2024-09-07 15:37:29