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); });
47template <std::ranges::range R>
48requires(c_writable<std::ranges::range_value_t<R>>)
49[[nodiscard]] std::string
join(
const R& range,
const std::string_view delimiter =
", ") {
50 std::ostringstream oss;
52 auto it = std::ranges::begin(range);
53 const auto end = std::ranges::end(range);
57 for (; it != end; ++it)
58 oss << delimiter << *it;
std::string as_string(const T &value) noexcept
Converts a value to std::string.
std::string join(const R &range, const std::string_view delimiter=", ")
Joins elements of a range into a single string with a delimiter.
bool contains_whitespaces(std::string_view str) noexcept
Checks whether a string contains any whitespace characters.
Provides the general concept definitions.