26template <c_writable T>
27[[nodiscard]] std::string
as_string(
const T& value)
noexcept {
28 std::ostringstream oss;
35 return std::ranges::any_of(str, [](
unsigned char c) {
return std::isspace(c); });
46template <std::ranges::range R>
47requires(c_writable<std::ranges::range_value_t<R>>)
48[[nodiscard]] std::string
join(
const R& range,
const std::string_view delimiter =
", ") {
49 std::ostringstream oss;
51 auto it = std::ranges::begin(range);
52 const auto end = std::ranges::end(range);
56 for (; it != end; ++it)
57 oss << delimiter << *it;
std::string join(const R &range, const std::string_view delimiter=", ")
Joins elements of a range into a single string with a delimiter.
std::string as_string(const T &value) noexcept
Converts a value to std::string.
bool contains_whitespaces(std::string_view str) noexcept
Checks whether a string contains any whitespace characters.
Provides the general concept definitions.