diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2015-01-14 11:46:32 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2015-01-14 11:46:32 +0200 |
commit | c2339b07fb683355c6a6155ec312b1616167614e (patch) | |
tree | 7ef5437f838ddfd1a1631dcd471bc89b63679177 /build/prefix_map.txx | |
parent | ce8a94e6a76097ef7eeb34df4257991a20599712 (diff) |
Implement prefix_map
Diffstat (limited to 'build/prefix_map.txx')
-rw-r--r-- | build/prefix_map.txx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/build/prefix_map.txx b/build/prefix_map.txx new file mode 100644 index 0000000..17a8ca0 --- /dev/null +++ b/build/prefix_map.txx @@ -0,0 +1,42 @@ +// file : build/prefix_map.txx -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Tools CC +// license : MIT; see accompanying LICENSE file + +namespace build +{ + template <typename M> + auto prefix_map_impl<M>:: + find (const key_type& k) -> std::pair<iterator, iterator> + { + std::pair<iterator, iterator> r; + r.first = this->lower_bound (k); + + for (r.second = r.first; + r.second != this->end (); + ++r.second) + { + if (!this->key_comp ().prefix (k, r.second->first)) + break; + } + + return r; + } + + template <typename M> + auto prefix_map_impl<M>:: + find (const key_type& k) const -> std::pair<const_iterator, const_iterator> + { + std::pair<const_iterator, const_iterator> r; + r.first = this->lower_bound (k); + + for (r.second = r.first; + r.second != this->end (); + ++r.second) + { + if (!this->key_comp ().prefix (k, r.second->first)) + break; + } + + return r; + } +} |