AnnaDB 1.0
Loading...
Searching...
No Matches
utils.hpp
1//
2// Created by felix on 08.02.23.
3//
4
5#ifndef ANNADB_DRIVER_UTILS_HPP
6#define ANNADB_DRIVER_UTILS_HPP
7
8#include <ranges>
9#include <string_view>
10#include <vector>
11#include <algorithm>
12#include <iostream>
13
14namespace utils
15{
24 inline std::vector<std::string> split(std::string_view txt, char delim) noexcept
25 { const auto to_string = [](auto && chr) -> std::string {
26 const std::ranges::common_view cv = std::ranges::common_view{chr};
27 return {cv.begin(), cv.end()};
28 };
29
30 const auto range_ = std::ranges::split_view(txt, delim) | std::ranges::views::transform(to_string);
31
32 std::vector<std::string> vec;
33 vec.reserve(std::distance(range_.begin(), range_.end()));
34
35 std::ranges::copy(range_, std::back_inserter(vec));
36
37 return vec;
38 }
39}
40#endif //ANNADB_DRIVER_UTILS_HPP