From dc65f9612e9feea1732572e8188d900495349059 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 18 Jun 2015 12:25:02 +0200 Subject: Move prefix-map from build2 to libbutl --- butl/prefix-map.txx | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 butl/prefix-map.txx (limited to 'butl/prefix-map.txx') diff --git a/butl/prefix-map.txx b/butl/prefix-map.txx new file mode 100644 index 0000000..9ead579 --- /dev/null +++ b/butl/prefix-map.txx @@ -0,0 +1,39 @@ +// file : butl/prefix-map.txx -*- C++ -*- +// copyright : Copyright (c) 2014-2015 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +namespace butl +{ + template + auto prefix_map_common:: + find_prefix (const key_type& k) -> std::pair + { + std::pair 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 + auto prefix_map_common:: + find_prefix (const key_type& k) const -> + std::pair + { + std::pair 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; + } +} -- cgit v1.1