flat_base: take more common operations

This commit is contained in:
Justin Viiret 2017-01-20 16:17:48 +11:00 committed by Matthew Barr
parent a38ac6a52f
commit f8166fac25

View File

@ -125,6 +125,18 @@ public:
key_compare key_comp() const { key_compare key_comp() const {
return comp(); return comp();
} }
// Capacity.
bool empty() const { return data().empty(); }
size_t size() const { return data().size(); }
size_t max_size() const { return data().max_size(); }
// Modifiers.
void clear() {
data().clear();
}
}; };
} // namespace flat_detail } // namespace flat_detail
@ -221,18 +233,8 @@ public:
} }
const_reverse_iterator rend() const { return crend(); } const_reverse_iterator rend() const { return crend(); }
// Capacity.
bool empty() const { return data().empty(); }
size_t size() const { return data().size(); }
size_t max_size() const { return data().max_size(); }
// Modifiers. // Modifiers.
void clear() {
data().clear();
}
std::pair<iterator, bool> insert(const value_type &value) { std::pair<iterator, bool> insert(const value_type &value) {
auto it = std::lower_bound(data().begin(), data().end(), value, comp()); auto it = std::lower_bound(data().begin(), data().end(), value, comp());
if (it == data().end() || comp()(value, *it)) { if (it == data().end() || comp()(value, *it)) {
@ -442,12 +444,6 @@ public:
} }
const_reverse_iterator rend() const { return crend(); } const_reverse_iterator rend() const { return crend(); }
// Capacity.
bool empty() const { return data().empty(); }
size_t size() const { return data().size(); }
size_t max_size() const { return data().max_size(); }
private: private:
using storage_iterator = typename storage_type::iterator; using storage_iterator = typename storage_type::iterator;
using storage_const_iterator = typename storage_type::const_iterator; using storage_const_iterator = typename storage_type::const_iterator;
@ -504,10 +500,6 @@ private:
public: public:
// Modifiers. // Modifiers.
void clear() {
data().clear();
}
std::pair<iterator, bool> insert(const value_type &value) { std::pair<iterator, bool> insert(const value_type &value) {
auto rv = data_insert(value); auto rv = data_insert(value);
return std::make_pair(iterator(rv.first), rv.second); return std::make_pair(iterator(rv.first), rv.second);