7#ifndef OCL_TPROC_ROPE_HPP
8#define OCL_TPROC_ROPE_HPP
12namespace ocl::tproc::rope
16 template <
typename It>
22 reverse_pred(
const boost::core::basic_string_view<typename It::value_type>& cond)
27 using iterator_ptr = It*;
29 iterator_ptr operator()(iterator_ptr rbegin, iterator_ptr rend)
31 for (
auto rbeg{rbegin}; rbeg != rend; ++rbeg)
42 template <
typename It>
48 ends_with_pred(
const boost::core::basic_string_view<typename It::value_type>& cond)
53 using iterator_ptr = It*;
55 iterator_ptr operator()(iterator_ptr begin, iterator_ptr end)
57 for (
auto beg{begin}; beg != end; ++beg)
59 if (beg->ends_with(cond_.to_string()))
67 template <
typename It>
73 uppercase_pred(
const boost::core::basic_string_view<typename It::value_type>& cond)
78 using iterator_ptr = It*;
80 iterator_ptr operator()(iterator_ptr begin, iterator_ptr end)
82 std::transform(cond_.begin(),
84 [](std::allocator_traits<It>::value_type& ch) {
85 return std::toupper(ch);
88 for (
auto beg{begin}; beg != end; ++beg)
98 template <
typename It>
104 lowercase_pred(
const boost::core::basic_string_view<typename It::value_type>& cond)
109 using iterator_ptr = It*;
111 iterator_ptr operator()(iterator_ptr begin, iterator_ptr end)
113 std::transform(cond_.begin(),
115 [](std::allocator_traits<It>::value_type& ch) {
116 return std::tolower(ch);
119 for (
auto beg{begin}; beg != end; ++beg)
129 template <
typename It>
135 exact_pred(
const boost::core::basic_string_view<typename It::value_type>& cond)
140 using iterator_ptr = It*;
142 iterator_ptr operator()(iterator_ptr begin, iterator_ptr end)
144 for (
auto beg{begin}; beg != end; ++beg)
154 template <
typename It>
160 starts_with_pred(
const boost::core::basic_string_view<typename It::value_type>& cond)
165 using iterator_ptr = It*;
167 iterator_ptr operator()(iterator_ptr begin, iterator_ptr end)
169 for (
auto beg{begin}; beg != end; ++beg)
171 if (beg->starts_with(cond_))
184 template <
typename It,
class Pred>
185 Pred find(It begin, It end, Pred);
187 template <
typename It,
class Pred>
188 Pred find_if(It begin, It end, Pred);
190 template <
typename It,
class Pred>
191 Pred::size_type erase(It begin, It end, Pred);
193 template <
typename It,
class Pred>
194 Pred::size_type erase_if(It begin, It end, Pred);
This class implements a rope type for any CharT type.
Definition rope_fwd.hpp:23
ends with pred type.
Definition rope.hpp:44
reverse exact pred type.
Definition rope.hpp:18
AMLALE: SourcePair desrves documentation by themselves.
Definition bfs.hpp:13
Basic forward definitions of the rope type.