//******************************************************** // The following code example is taken from the book // C++20 - The Complete Guide // by Nicolai M. Josuttis (www.josuttis.com) // http://www.cppstd20.com // // The code is licensed under a // Creative Commons Attribution 4.0 International License // http://creativecommons.org/licenses/by/4.0/ //******************************************************** #include template std::ranges::range_value_t maxValue(Range&& rg) { if (std::ranges::empty(rg)) { return std::ranges::range_value_t{}; } auto pos = std::ranges::begin(rg); auto max = *pos; while (++pos != std::ranges::end(rg)) { if (*pos > max) { max = *pos; } } return max; }