| 1750 | |
| 1751 | template<typename V> |
| 1752 | struct case_fold_view |
| 1753 | { |
| 1754 | using iterator = |
| 1755 | no_case_iter<detail::iterator_t<V>, detail::sentinel_t<V>>; |
| 1756 | |
| 1757 | case_fold_view(V base) : base_(std::move(base)) {} |
| 1758 | |
| 1759 | iterator begin() const |
| 1760 | { |
| 1761 | return iterator( |
| 1762 | text::detail::begin(base_), text::detail::end(base_)); |
| 1763 | } |
| 1764 | auto end() const { return text::detail::end(base_); } |
| 1765 | |
| 1766 | private: |
| 1767 | V base_; |
| 1768 | }; |
| 1769 | |
| 1770 | enum class symbol_table_op { insert, erase, clear }; |
| 1771 |