9#ifndef DRYCHEM_COMMON_UTILITIES_INCLUDE_COMMON_UTILS_STRINGS_UTILS_TOKENIZER_HPP
10#define DRYCHEM_COMMON_UTILITIES_INCLUDE_COMMON_UTILS_STRINGS_UTILS_TOKENIZER_HPP
13#include <forward_list>
34 template<
typename,
typename = std::
void_t<>>
60 template<
typename CharTraits>
66 using reference = std::basic_string<char, CharTraits>&;
68 using iterator =
typename std::basic_string<char, CharTraits>::iterator;
69 using const_iterator =
typename std::basic_string<char, CharTraits>::const_iterator;
121 std::optional<value_type> keepDelimiters_ = std::nullopt)
132 std::optional<value_type> keepDelimiters_ = std::nullopt)
145 template<
typename Container = std::vector<value_type>,
typename T =
typename Container::value_type,
146 typename = std::enable_if_t<std::conjunction_v<Meta::is_allocator_aware_container<Container>,
147 std::negation<details::has_mapped_type<Container>>>>>
154 if constexpr (std::is_same_v<Container, std::forward_list<T>>)
156 std::front_insert_iterator<Container> tokensIter {tokens};
167 std::insert_iterator<Container> tokensIter {tokens, tokens.begin()};
189 template<
typename CharTraits,
typename... TArgs>
Definition tokenizer.hpp:62
const std::basic_string< char, CharTraits > & const_reference
Definition tokenizer.hpp:67
constexpr Container split()
Definition tokenizer.hpp:148
typename std::basic_string< char, CharTraits >::const_iterator const_iterator
Definition tokenizer.hpp:69
const_iterator str_current
Definition tokenizer.hpp:72
std::basic_string< char, CharTraits > value_type
Member types.
Definition tokenizer.hpp:65
constexpr Tokenizer(const_iterator begin_, const_iterator end_, const_reference delimiters_=" \t\n", std::optional< value_type > keepDelimiters_=std::nullopt)
Definition tokenizer.hpp:120
constexpr Tokenizer(const_reference str_, const_reference delimiters_=" \t\n", std::optional< value_type > keepDelimiters_=std::nullopt)
Definition tokenizer.hpp:131
value_type delimiters
Definition tokenizer.hpp:74
std::optional< value_type > keepDelimiters
Definition tokenizer.hpp:75
constexpr bool isDelimiter(const char ch_) const noexcept
Definition tokenizer.hpp:82
std::basic_string< char, CharTraits > & reference
Definition tokenizer.hpp:66
const_iterator str_end
Definition tokenizer.hpp:73
typename std::basic_string< char, CharTraits >::iterator iterator
Definition tokenizer.hpp:68
constexpr value_type nextToken()
Definition tokenizer.hpp:90
Definition tokenizer.hpp:27
Definition ciString.hpp:17
Tokenizer(const std::basic_string< char, CharTraits > &, TArgs...) -> Tokenizer< CharTraits >
auto lexical_cast(const std::basic_string< char, CharTraits > &str)
Definition lexicalCast.hpp:34
constexpr bool foundSubstr(const std::basic_string< char, CharTraits > &stringToFind, const std::basic_string< char, CharTraits > &stringToSearch) noexcept
Definition stringUtils.hpp:26
Definition tokenizer.hpp:36