diff options
Diffstat (limited to 'libstdc++-v3/include/debug/multimap.h')
-rw-r--r-- | libstdc++-v3/include/debug/multimap.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h index 5c7f2a91e88..e2c806131f0 100644 --- a/libstdc++-v3/include/debug/multimap.h +++ b/libstdc++-v3/include/debug/multimap.h @@ -393,28 +393,82 @@ namespace __debug find(const key_type& __x) { return iterator(_Base::find(__x), this); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + iterator + find(const _Kt& __x) + { return { _Base::find(__x), this }; } +#endif + const_iterator find(const key_type& __x) const { return const_iterator(_Base::find(__x), this); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + const_iterator + find(const _Kt& __x) const + { return { _Base::find(__x), this }; } +#endif + using _Base::count; iterator lower_bound(const key_type& __x) { return iterator(_Base::lower_bound(__x), this); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + iterator + lower_bound(const _Kt& __x) + { return { _Base::lower_bound(__x), this }; } +#endif + const_iterator lower_bound(const key_type& __x) const { return const_iterator(_Base::lower_bound(__x), this); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + const_iterator + lower_bound(const _Kt& __x) const + { return { _Base::lower_bound(__x), this }; } +#endif + iterator upper_bound(const key_type& __x) { return iterator(_Base::upper_bound(__x), this); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + iterator + upper_bound(const _Kt& __x) + { return { _Base::upper_bound(__x), this }; } +#endif + const_iterator upper_bound(const key_type& __x) const { return const_iterator(_Base::upper_bound(__x), this); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + const_iterator + upper_bound(const _Kt& __x) const + { return { _Base::upper_bound(__x), this }; } +#endif + std::pair<iterator,iterator> equal_range(const key_type& __x) { @@ -424,6 +478,18 @@ namespace __debug iterator(__res.second, this)); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + std::pair<iterator, iterator> + equal_range(const _Kt& __x) + { + auto __res = _Base::equal_range(__x); + return { { __res.first, this }, { __res.second, this } }; + } +#endif + std::pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { @@ -433,6 +499,18 @@ namespace __debug const_iterator(__res.second, this)); } +#if __cplusplus > 201103L + template<typename _Kt, + typename _Req = + typename __has_is_transparent<_Compare, _Kt>::type> + std::pair<const_iterator, const_iterator> + equal_range(const _Kt& __x) const + { + auto __res = _Base::equal_range(__x); + return { { __res.first, this }, { __res.second, this } }; + } +#endif + _Base& _M_base() _GLIBCXX_NOEXCEPT { return *this; } |