23 inline std::string
trim(
const std::string_view str) {
25 const std::string_view::const_iterator& start =
26 std::ranges::find_if_not(str, [](
const unsigned char ch) {
return std::isspace(ch); });
28 const std::string_view::const_iterator& end =
29 std::ranges::find_if_not(str.rbegin(), str.rend(), [](
const unsigned char ch) {
return std::isspace(ch); }).base();
32 const std::string_view::const_iterator& start =
33 std::find_if_not(str.begin(), str.end(), [](
const unsigned char ch) {
return std::isspace(ch); });
35 const std::string_view::const_iterator& end =
36 std::find_if_not(str.rbegin(), str.rend(), [](
const unsigned char ch) {
return std::isspace(ch); }).base();
39 return (start < end) ? std::string(start, end) : std::string();