Split a string on a set of delimiters

C++
#include <iostream>
#include <string_view>
#include <vector>

// Split on any of the characters in delimiters, skipping empty pieces.
std::vector<std::string_view> split(std::string_view text, std::string_view delimiters) {
    std::vector<std::string_view> parts;
    std::size_t start = text.find_first_not_of(delimiters);
    while (start != std::string_view::npos) {
        const std::size_t end = text.find_first_of(delimiters, start);
        parts.push_back(text.substr(start, end - start));
        if (end == std::string_view::npos) {
            break;
        }
        start = text.find_first_not_of(delimiters, end);
    }
    return parts;
}

int main() {
    const std::string_view text = "  alpha, beta ,gamma  ";
    for (std::string_view field : split(text, " ,")) {
        std::cout << '[' << field << "]\n";
    }
}