File tree 1 file changed +12
-10
lines changed
1 file changed +12
-10
lines changed Original file line number Diff line number Diff line change 213
213
#include < cstdio>
214
214
#include < cstdint>
215
215
#include < algorithm>
216
+ #include < ranges>
216
217
217
218
#ifndef CPP2_NO_EXCEPTIONS
218
219
#include < exception>
@@ -1493,25 +1494,26 @@ inline auto to_string(std::tuple<Ts...> const& t) -> std::string
1493
1494
1494
1495
// -----------------------------------------------------------------------
1495
1496
//
1496
- // args: see main() arguments as vector <string_view>
1497
+ // args: see main() arguments as std::ranges::view <string_view>
1497
1498
//
1498
1499
// -----------------------------------------------------------------------
1499
1500
//
1500
- struct args_t : std::vector<std::string_view>
1501
+ struct args_t : std::ranges::transform_view<
1502
+ std::span<char const * const >,
1503
+ decltype ([](char const * s) { return std::string_view{s}; })
1504
+ >
1501
1505
{
1502
- args_t (int c, char const * const * v) : vector{static_cast <size_t >(c)}, argc{c}, argv{v} {}
1503
-
1504
1506
int argc = 0 ;
1505
1507
char const * const * argv = nullptr ;
1506
1508
};
1507
1509
1508
- inline auto make_args (int argc, char const * const * argv) -> args_t
1510
+ inline auto make_args (int argc, char const * const * argv) -> auto
1509
1511
{
1510
- auto ret = args_t {argc, argv};
1511
- for ( auto i = 0 ; i < argc; ++i) {
1512
- ret[i] = std::string_view{argv[i]};
1513
- }
1514
- return ret ;
1512
+ return args_t {
1513
+ { std::span (argv, argc), {} },
1514
+ argc,
1515
+ argv
1516
+ } ;
1515
1517
}
1516
1518
1517
1519
You can’t perform that action at this time.
0 commit comments