aboutsummaryrefslogtreecommitdiff
path: root/libbutl/prefix-map.txx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-05-01 16:08:43 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-05-01 16:59:24 +0300
commit61377c582e0f2675baa5f5e6e30a35d1a4164b33 (patch)
tree11cdca992834d7f7f197f72856712fbcb3020e3d /libbutl/prefix-map.txx
parent442c1a6790e52baa0c081f310d4d9e9b6f1ff638 (diff)
Add hxx extension for headers and lib prefix for library dir
Diffstat (limited to 'libbutl/prefix-map.txx')
-rw-r--r--libbutl/prefix-map.txx39
1 files changed, 39 insertions, 0 deletions
diff --git a/libbutl/prefix-map.txx b/libbutl/prefix-map.txx
new file mode 100644
index 0000000..f3cd29f
--- /dev/null
+++ b/libbutl/prefix-map.txx
@@ -0,0 +1,39 @@
+// file : libbutl/prefix-map.txx -*- C++ -*-
+// copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
+// license : MIT; see accompanying LICENSE file
+
+namespace butl
+{
+ template <typename M>
+ auto prefix_map_common<M>::
+ find_prefix (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_common<M>::
+ find_prefix (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;
+ }
+}