@@ -331,7 +331,7 @@ class format_parse : public format_base
331331
332332 std::string result{' [' };
333333 for (auto const & [key, value] : key_value_pairs)
334- result += std::string{key. data () } + " , " ;
334+ result += std::string{key} + " , " ;
335335 result.replace (result.size () - 2 , 2 , " ]" ); // replace last ", " by "]"
336336 return result;
337337 }();
@@ -402,11 +402,11 @@ class format_parse : public format_base
402402 requires std::is_arithmetic_v<option_t > && istreamable<option_t >
403403 option_parse_result parse_option_value (option_t & value, std::string const & in)
404404 {
405- auto res = std::from_chars (&in[ 0 ], &in[ in.size ()] , value);
405+ auto res = std::from_chars (in. data (), in. data () + in.size (), value);
406406
407407 if (res.ec == std::errc::result_out_of_range)
408408 return option_parse_result::overflow_error;
409- else if (res.ec == std::errc::invalid_argument || res.ptr != &in[ in.size ()] )
409+ else if (res.ec == std::errc::invalid_argument || res.ptr != in. data () + in.size ())
410410 return option_parse_result::error;
411411
412412 return option_parse_result::success;
@@ -424,14 +424,10 @@ class format_parse : public format_base
424424 */
425425 option_parse_result parse_option_value (bool & value, std::string const & in)
426426 {
427- if (in == " 0" )
427+ if (in == " 0" || in == " false " )
428428 value = false ;
429- else if (in == " 1" )
429+ else if (in == " 1" || in == " true " )
430430 value = true ;
431- else if (in == " true" )
432- value = true ;
433- else if (in == " false" )
434- value = false ;
435431 else
436432 return option_parse_result::error;
437433
0 commit comments