@@ -1819,209 +1819,178 @@ public:
1819
1819
# ifndef _LIBCPP_CXX03_LANG
1820
1820
1821
1821
template <class ... _Args>
1822
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator emplace (_Args&&... __args) {
1822
+ _LIBCPP_HIDE_FROM_ABI iterator emplace (_Args&&... __args) {
1823
1823
return __tree_.__emplace_multi (std::forward<_Args>(__args)...);
1824
1824
}
1825
1825
1826
1826
template <class ... _Args>
1827
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator emplace_hint (const_iterator __p, _Args&&... __args) {
1827
+ _LIBCPP_HIDE_FROM_ABI iterator emplace_hint (const_iterator __p, _Args&&... __args) {
1828
1828
return __tree_.__emplace_hint_multi (__p.__i_ , std::forward<_Args>(__args)...);
1829
1829
}
1830
1830
1831
1831
template <class _Pp , __enable_if_t <is_constructible<value_type, _Pp>::value, int > = 0 >
1832
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (_Pp&& __p) {
1832
+ _LIBCPP_HIDE_FROM_ABI iterator insert (_Pp&& __p) {
1833
1833
return __tree_.__emplace_multi (std::forward<_Pp>(__p));
1834
1834
}
1835
1835
1836
1836
template <class _Pp , __enable_if_t <is_constructible<value_type, _Pp>::value, int > = 0 >
1837
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const_iterator __pos, _Pp&& __p) {
1837
+ _LIBCPP_HIDE_FROM_ABI iterator insert (const_iterator __pos, _Pp&& __p) {
1838
1838
return __tree_.__emplace_hint_multi (__pos.__i_ , std::forward<_Pp>(__p));
1839
1839
}
1840
1840
1841
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (value_type&& __v) {
1842
- return __tree_.__emplace_multi (std::move (__v));
1843
- }
1841
+ _LIBCPP_HIDE_FROM_ABI iterator insert (value_type&& __v) { return __tree_.__emplace_multi (std::move (__v)); }
1844
1842
1845
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const_iterator __p, value_type&& __v) {
1843
+ _LIBCPP_HIDE_FROM_ABI iterator insert (const_iterator __p, value_type&& __v) {
1846
1844
return __tree_.__emplace_hint_multi (__p.__i_ , std::move (__v));
1847
1845
}
1848
1846
1849
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert (initializer_list<value_type> __il) {
1850
- insert (__il.begin (), __il.end ());
1851
- }
1847
+ _LIBCPP_HIDE_FROM_ABI void insert (initializer_list<value_type> __il) { insert (__il.begin (), __il.end ()); }
1852
1848
1853
1849
# endif // _LIBCPP_CXX03_LANG
1854
1850
1855
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const value_type& __v) {
1856
- return __tree_.__emplace_multi (__v);
1857
- }
1851
+ _LIBCPP_HIDE_FROM_ABI iterator insert (const value_type& __v) { return __tree_.__emplace_multi (__v); }
1858
1852
1859
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const_iterator __p, const value_type& __v) {
1853
+ _LIBCPP_HIDE_FROM_ABI iterator insert (const_iterator __p, const value_type& __v) {
1860
1854
return __tree_.__emplace_hint_multi (__p.__i_ , __v);
1861
1855
}
1862
1856
1863
1857
template <class _InputIterator >
1864
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert (_InputIterator __f, _InputIterator __l) {
1858
+ _LIBCPP_HIDE_FROM_ABI void insert (_InputIterator __f, _InputIterator __l) {
1865
1859
__tree_.__insert_range_multi (__f, __l);
1866
1860
}
1867
1861
1868
1862
# if _LIBCPP_STD_VER >= 23
1869
1863
template <_ContainerCompatibleRange<value_type> _Range>
1870
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void insert_range (_Range&& __range) {
1864
+ _LIBCPP_HIDE_FROM_ABI void insert_range (_Range&& __range) {
1871
1865
__tree_.__insert_range_multi (ranges::begin (__range), ranges::end (__range));
1872
1866
}
1873
1867
# endif
1874
1868
1875
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase (const_iterator __p) {
1876
- return __tree_.erase (__p.__i_ );
1877
- }
1878
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase (iterator __p) { return __tree_.erase (__p.__i_ ); }
1879
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type erase (const key_type& __k) {
1880
- return __tree_.__erase_multi (__k);
1881
- }
1882
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator erase (const_iterator __f, const_iterator __l) {
1869
+ _LIBCPP_HIDE_FROM_ABI iterator erase (const_iterator __p) { return __tree_.erase (__p.__i_ ); }
1870
+ _LIBCPP_HIDE_FROM_ABI iterator erase (iterator __p) { return __tree_.erase (__p.__i_ ); }
1871
+ _LIBCPP_HIDE_FROM_ABI size_type erase (const key_type& __k) { return __tree_.__erase_multi (__k); }
1872
+ _LIBCPP_HIDE_FROM_ABI iterator erase (const_iterator __f, const_iterator __l) {
1883
1873
return __tree_.erase (__f.__i_ , __l.__i_ );
1884
1874
}
1885
1875
1886
1876
# if _LIBCPP_STD_VER >= 17
1887
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (node_type&& __nh) {
1877
+ _LIBCPP_HIDE_FROM_ABI iterator insert (node_type&& __nh) {
1888
1878
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR (__nh.empty () || __nh.get_allocator () == get_allocator (),
1889
1879
" node_type with incompatible allocator passed to multimap::insert()" );
1890
1880
return __tree_.template __node_handle_insert_multi <node_type>(std::move (__nh));
1891
1881
}
1892
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator insert (const_iterator __hint, node_type&& __nh) {
1882
+ _LIBCPP_HIDE_FROM_ABI iterator insert (const_iterator __hint, node_type&& __nh) {
1893
1883
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR (__nh.empty () || __nh.get_allocator () == get_allocator (),
1894
1884
" node_type with incompatible allocator passed to multimap::insert()" );
1895
1885
return __tree_.template __node_handle_insert_multi <node_type>(__hint.__i_ , std::move (__nh));
1896
1886
}
1897
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 node_type extract (key_type const & __key) {
1887
+ _LIBCPP_HIDE_FROM_ABI node_type extract (key_type const & __key) {
1898
1888
return __tree_.template __node_handle_extract <node_type>(__key);
1899
1889
}
1900
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 node_type extract (const_iterator __it) {
1890
+ _LIBCPP_HIDE_FROM_ABI node_type extract (const_iterator __it) {
1901
1891
return __tree_.template __node_handle_extract <node_type>(__it.__i_ );
1902
1892
}
1903
1893
template <class _Compare2 >
1904
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
1905
- merge (multimap<key_type, mapped_type, _Compare2, allocator_type>& __source) {
1894
+ _LIBCPP_HIDE_FROM_ABI void merge (multimap<key_type, mapped_type, _Compare2, allocator_type>& __source) {
1906
1895
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR (
1907
1896
__source.get_allocator () == get_allocator (), " merging container with incompatible allocator" );
1908
1897
return __tree_.__node_handle_merge_multi (__source.__tree_ );
1909
1898
}
1910
1899
template <class _Compare2 >
1911
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
1912
- merge (multimap<key_type, mapped_type, _Compare2, allocator_type>&& __source) {
1900
+ _LIBCPP_HIDE_FROM_ABI void merge (multimap<key_type, mapped_type, _Compare2, allocator_type>&& __source) {
1913
1901
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR (
1914
1902
__source.get_allocator () == get_allocator (), " merging container with incompatible allocator" );
1915
1903
return __tree_.__node_handle_merge_multi (__source.__tree_ );
1916
1904
}
1917
1905
template <class _Compare2 >
1918
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
1919
- merge (map<key_type, mapped_type, _Compare2, allocator_type>& __source) {
1906
+ _LIBCPP_HIDE_FROM_ABI void merge (map<key_type, mapped_type, _Compare2, allocator_type>& __source) {
1920
1907
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR (
1921
1908
__source.get_allocator () == get_allocator (), " merging container with incompatible allocator" );
1922
1909
return __tree_.__node_handle_merge_multi (__source.__tree_ );
1923
1910
}
1924
1911
template <class _Compare2 >
1925
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void
1926
- merge (map<key_type, mapped_type, _Compare2, allocator_type>&& __source) {
1912
+ _LIBCPP_HIDE_FROM_ABI void merge (map<key_type, mapped_type, _Compare2, allocator_type>&& __source) {
1927
1913
_LIBCPP_ASSERT_COMPATIBLE_ALLOCATOR (
1928
1914
__source.get_allocator () == get_allocator (), " merging container with incompatible allocator" );
1929
1915
return __tree_.__node_handle_merge_multi (__source.__tree_ );
1930
1916
}
1931
1917
# endif
1932
1918
1933
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void clear () _NOEXCEPT { __tree_.clear (); }
1919
+ _LIBCPP_HIDE_FROM_ABI void clear () _NOEXCEPT { __tree_.clear (); }
1934
1920
1935
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void swap (multimap& __m)
1936
- _NOEXCEPT_(__is_nothrow_swappable_v<__base>) {
1921
+ _LIBCPP_HIDE_FROM_ABI void swap (multimap& __m) _NOEXCEPT_(__is_nothrow_swappable_v<__base>) {
1937
1922
__tree_.swap (__m.__tree_ );
1938
1923
}
1939
1924
1940
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find (const key_type& __k) { return __tree_.find (__k); }
1941
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find (const key_type& __k) const {
1942
- return __tree_.find (__k);
1943
- }
1925
+ _LIBCPP_HIDE_FROM_ABI iterator find (const key_type& __k) { return __tree_.find (__k); }
1926
+ _LIBCPP_HIDE_FROM_ABI const_iterator find (const key_type& __k) const { return __tree_.find (__k); }
1944
1927
# if _LIBCPP_STD_VER >= 14
1945
1928
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1946
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator find (const _K2& __k) {
1929
+ _LIBCPP_HIDE_FROM_ABI iterator find (const _K2& __k) {
1947
1930
return __tree_.find (__k);
1948
1931
}
1949
1932
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1950
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator find (const _K2& __k) const {
1933
+ _LIBCPP_HIDE_FROM_ABI const_iterator find (const _K2& __k) const {
1951
1934
return __tree_.find (__k);
1952
1935
}
1953
1936
# endif
1954
1937
1955
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type count (const key_type& __k) const {
1956
- return __tree_.__count_multi (__k);
1957
- }
1938
+ _LIBCPP_HIDE_FROM_ABI size_type count (const key_type& __k) const { return __tree_.__count_multi (__k); }
1958
1939
# if _LIBCPP_STD_VER >= 14
1959
1940
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1960
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 size_type count (const _K2& __k) const {
1941
+ _LIBCPP_HIDE_FROM_ABI size_type count (const _K2& __k) const {
1961
1942
return __tree_.__count_multi (__k);
1962
1943
}
1963
1944
# endif
1964
1945
1965
1946
# if _LIBCPP_STD_VER >= 20
1966
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains (const key_type& __k) const {
1967
- return find (__k) != end ();
1968
- }
1947
+ _LIBCPP_HIDE_FROM_ABI bool contains (const key_type& __k) const { return find (__k) != end (); }
1969
1948
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1970
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 bool contains (const _K2& __k) const {
1949
+ _LIBCPP_HIDE_FROM_ABI bool contains (const _K2& __k) const {
1971
1950
return find (__k) != end ();
1972
1951
}
1973
1952
# endif // _LIBCPP_STD_VER >= 20
1974
1953
1975
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator lower_bound (const key_type& __k) {
1976
- return __tree_.lower_bound (__k);
1977
- }
1978
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator lower_bound (const key_type& __k) const {
1979
- return __tree_.lower_bound (__k);
1980
- }
1954
+ _LIBCPP_HIDE_FROM_ABI iterator lower_bound (const key_type& __k) { return __tree_.lower_bound (__k); }
1955
+ _LIBCPP_HIDE_FROM_ABI const_iterator lower_bound (const key_type& __k) const { return __tree_.lower_bound (__k); }
1981
1956
# if _LIBCPP_STD_VER >= 14
1982
1957
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1983
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator lower_bound (const _K2& __k) {
1958
+ _LIBCPP_HIDE_FROM_ABI iterator lower_bound (const _K2& __k) {
1984
1959
return __tree_.lower_bound (__k);
1985
1960
}
1986
1961
1987
1962
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
1988
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator lower_bound (const _K2& __k) const {
1963
+ _LIBCPP_HIDE_FROM_ABI const_iterator lower_bound (const _K2& __k) const {
1989
1964
return __tree_.lower_bound (__k);
1990
1965
}
1991
1966
# endif
1992
1967
1993
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator upper_bound (const key_type& __k) {
1994
- return __tree_.upper_bound (__k);
1995
- }
1996
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator upper_bound (const key_type& __k) const {
1997
- return __tree_.upper_bound (__k);
1998
- }
1968
+ _LIBCPP_HIDE_FROM_ABI iterator upper_bound (const key_type& __k) { return __tree_.upper_bound (__k); }
1969
+ _LIBCPP_HIDE_FROM_ABI const_iterator upper_bound (const key_type& __k) const { return __tree_.upper_bound (__k); }
1999
1970
# if _LIBCPP_STD_VER >= 14
2000
1971
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
2001
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 iterator upper_bound (const _K2& __k) {
1972
+ _LIBCPP_HIDE_FROM_ABI iterator upper_bound (const _K2& __k) {
2002
1973
return __tree_.upper_bound (__k);
2003
1974
}
2004
1975
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
2005
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 const_iterator upper_bound (const _K2& __k) const {
1976
+ _LIBCPP_HIDE_FROM_ABI const_iterator upper_bound (const _K2& __k) const {
2006
1977
return __tree_.upper_bound (__k);
2007
1978
}
2008
1979
# endif
2009
1980
2010
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<iterator, iterator> equal_range (const key_type& __k) {
1981
+ _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range (const key_type& __k) {
2011
1982
return __tree_.__equal_range_multi (__k);
2012
1983
}
2013
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
2014
- equal_range (const key_type& __k) const {
1984
+ _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range (const key_type& __k) const {
2015
1985
return __tree_.__equal_range_multi (__k);
2016
1986
}
2017
1987
# if _LIBCPP_STD_VER >= 14
2018
1988
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
2019
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<iterator, iterator> equal_range (const _K2& __k) {
1989
+ _LIBCPP_HIDE_FROM_ABI pair<iterator, iterator> equal_range (const _K2& __k) {
2020
1990
return __tree_.__equal_range_multi (__k);
2021
1991
}
2022
1992
template <typename _K2, enable_if_t <__is_transparent_v<_Compare, _K2>, int > = 0 >
2023
- _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 pair<const_iterator, const_iterator>
2024
- equal_range (const _K2& __k) const {
1993
+ _LIBCPP_HIDE_FROM_ABI pair<const_iterator, const_iterator> equal_range (const _K2& __k) const {
2025
1994
return __tree_.__equal_range_multi (__k);
2026
1995
}
2027
1996
# endif
0 commit comments