1#ifndef OSMIUM_TAGS_TAGS_FILTER_HPP
2#define OSMIUM_TAGS_TAGS_FILTER_HPP
65 template <
typename TResult>
68 std::vector<std::pair<TResult, TagMatcher>>
m_rules;
101 m_rules.emplace_back(result, matcher);
113 template <
typename... TArgs>
127 for (
const auto& rule :
m_rules) {
128 if (rule.second(tag)) {
140 std::size_t
count() const noexcept {
166 auto const end1 = tags1.
cend();
167 auto const end2 = tags2.
cend();
169 auto it1 = tags1.
cbegin();
170 auto it2 = tags2.
cbegin();
172 while (it1 != end1 && it2 != end2) {
189 while (it1 != end1 && !filter(*it1)) {
193 while (it2 != end2 && !filter(*it2)) {
197 return it1 == end1 && it2 == end2;
Definition matcher.hpp:48
Definition collection.hpp:118
const_iterator cend() const noexcept
Definition collection.hpp:233
const_iterator cbegin() const noexcept
Definition collection.hpp:229
Namespace for everything in the Osmium library.
Definition assembler.hpp:53
bool compare_tags(osmium::TagList const &tags1, osmium::TagList const &tags2, TagsFilter const &filter)
Definition tags_filter.hpp:162
TagsFilterBase< bool > TagsFilter
Definition tags_filter.hpp:155