#include "str.hh" #include #include #include namespace str { void split(std::string_view str, std::vector& out, char separator, bool keep_empty) { out.clear(); size_t offset = 0; while (true) { auto next = str.find(separator, offset); if (next == std::string_view::npos) { if (keep_empty || offset < str.size()) out.push_back(str.substr(offset)); break; } if (keep_empty || offset < next) out.push_back(str.substr(offset, next - offset)); offset = next + 1; } } std::vector split(std::string_view str, char separator, bool keep_empty) { std::vector vec; split(str, vec, separator, keep_empty); return vec; } } // namespace str