void remove(const TId id, const TValue value) { std::pair<iterator, iterator> r = get_all(id); for (iterator it = r.first; it != r.second; ++it) { if (it->second == value) { m_elements.erase(it); return; } } }
typename std::enable_if<Enabler::value, void>::type do_remove(iterator it) { collection_.erase(it); }