| @@ -1726,31 +1726,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -1726,31 +1726,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
1726 | * @p (__result_last-__result_first). | | 1726 | * @p (__result_last-__result_first). |
1727 | * After the sort if @e i and @e j are iterators in the range | | 1727 | * After the sort if @e i and @e j are iterators in the range |
1728 | * @p [__result_first,__result_first+N) such that i precedes j then | | 1728 | * @p [__result_first,__result_first+N) such that i precedes j then |
1729 | * *j<*i is false. | | 1729 | * *j<*i is false. |
1730 | * The value returned is @p __result_first+N. | | 1730 | * The value returned is @p __result_first+N. |
1731 | */ | | 1731 | */ |
1732 | template<typename _InputIterator, typename _RandomAccessIterator> | | 1732 | template<typename _InputIterator, typename _RandomAccessIterator> |
1733 | inline _RandomAccessIterator | | 1733 | inline _RandomAccessIterator |
1734 | partial_sort_copy(_InputIterator __first, _InputIterator __last, | | 1734 | partial_sort_copy(_InputIterator __first, _InputIterator __last, |
1735 | _RandomAccessIterator __result_first, | | 1735 | _RandomAccessIterator __result_first, |
1736 | _RandomAccessIterator __result_last) | | 1736 | _RandomAccessIterator __result_last) |
1737 | { | | 1737 | { |
1738 | typedef typename iterator_traits<_InputIterator>::value_type | | 1738 | typedef typename iterator_traits<_InputIterator>::value_type |
1739 | _InputValueType __unused; | | 1739 | _InputValueType __attribute__((__unused__)); |
1740 | typedef typename iterator_traits<_RandomAccessIterator>::value_type | | 1740 | typedef typename iterator_traits<_RandomAccessIterator>::value_type |
1741 | _OutputValueType __unused; | | 1741 | _OutputValueType __attribute__((__unused__)); |
1742 | typedef typename iterator_traits<_RandomAccessIterator>::difference_type | | 1742 | typedef typename iterator_traits<_RandomAccessIterator>::difference_type |
1743 | _DistanceType __unused; | | 1743 | _DistanceType __attribute__((__unused__)); |
1744 | | | 1744 | |
1745 | // concept requirements | | 1745 | // concept requirements |
1746 | __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) | | 1746 | __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) |
1747 | __glibcxx_function_requires(_ConvertibleConcept<_InputValueType, | | 1747 | __glibcxx_function_requires(_ConvertibleConcept<_InputValueType, |
1748 | _OutputValueType>) | | 1748 | _OutputValueType>) |
1749 | __glibcxx_function_requires(_LessThanOpConcept<_InputValueType, | | 1749 | __glibcxx_function_requires(_LessThanOpConcept<_InputValueType, |
1750 | _OutputValueType>) | | 1750 | _OutputValueType>) |
1751 | __glibcxx_function_requires(_LessThanComparableConcept<_OutputValueType>) | | 1751 | __glibcxx_function_requires(_LessThanComparableConcept<_OutputValueType>) |
1752 | __glibcxx_requires_valid_range(__first, __last); | | 1752 | __glibcxx_requires_valid_range(__first, __last); |
1753 | __glibcxx_requires_valid_range(__result_first, __result_last); | | 1753 | __glibcxx_requires_valid_range(__result_first, __result_last); |
1754 | | | 1754 | |
1755 | return std::__partial_sort_copy(__first, __last, | | 1755 | return std::__partial_sort_copy(__first, __last, |
1756 | __result_first, __result_last, | | 1756 | __result_first, __result_last, |
| @@ -1776,31 +1776,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -1776,31 +1776,31 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
1776 | * @p [__result_first,__result_first+N) such that i precedes j then | | 1776 | * @p [__result_first,__result_first+N) such that i precedes j then |
1777 | * @p __comp(*j,*i) is false. | | 1777 | * @p __comp(*j,*i) is false. |
1778 | * The value returned is @p __result_first+N. | | 1778 | * The value returned is @p __result_first+N. |
1779 | */ | | 1779 | */ |
1780 | template<typename _InputIterator, typename _RandomAccessIterator, | | 1780 | template<typename _InputIterator, typename _RandomAccessIterator, |
1781 | typename _Compare> | | 1781 | typename _Compare> |
1782 | inline _RandomAccessIterator | | 1782 | inline _RandomAccessIterator |
1783 | partial_sort_copy(_InputIterator __first, _InputIterator __last, | | 1783 | partial_sort_copy(_InputIterator __first, _InputIterator __last, |
1784 | _RandomAccessIterator __result_first, | | 1784 | _RandomAccessIterator __result_first, |
1785 | _RandomAccessIterator __result_last, | | 1785 | _RandomAccessIterator __result_last, |
1786 | _Compare __comp) | | 1786 | _Compare __comp) |
1787 | { | | 1787 | { |
1788 | typedef typename iterator_traits<_InputIterator>::value_type | | 1788 | typedef typename iterator_traits<_InputIterator>::value_type |
1789 | _InputValueType __unused; | | 1789 | _InputValueType __attribute__((__unused__)); |
1790 | typedef typename iterator_traits<_RandomAccessIterator>::value_type | | 1790 | typedef typename iterator_traits<_RandomAccessIterator>::value_type |
1791 | _OutputValueType __unused; | | 1791 | _OutputValueType __attribute__((__unused__)); |
1792 | typedef typename iterator_traits<_RandomAccessIterator>::difference_type | | 1792 | typedef typename iterator_traits<_RandomAccessIterator>::difference_type |
1793 | _DistanceType __unused; | | 1793 | _DistanceType __attribute__((__unused__)); |
1794 | | | 1794 | |
1795 | // concept requirements | | 1795 | // concept requirements |
1796 | __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) | | 1796 | __glibcxx_function_requires(_InputIteratorConcept<_InputIterator>) |
1797 | __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept< | | 1797 | __glibcxx_function_requires(_Mutable_RandomAccessIteratorConcept< |
1798 | _RandomAccessIterator>) | | 1798 | _RandomAccessIterator>) |
1799 | __glibcxx_function_requires(_ConvertibleConcept<_InputValueType, | | 1799 | __glibcxx_function_requires(_ConvertibleConcept<_InputValueType, |
1800 | _OutputValueType>) | | 1800 | _OutputValueType>) |
1801 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 1801 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
1802 | _InputValueType, _OutputValueType>) | | 1802 | _InputValueType, _OutputValueType>) |
1803 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 1803 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
1804 | _OutputValueType, _OutputValueType>) | | 1804 | _OutputValueType, _OutputValueType>) |
1805 | __glibcxx_requires_valid_range(__first, __last); | | 1805 | __glibcxx_requires_valid_range(__first, __last); |
1806 | __glibcxx_requires_valid_range(__result_first, __result_last); | | 1806 | __glibcxx_requires_valid_range(__result_first, __result_last); |
| @@ -2009,27 +2009,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2009,27 +2009,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2009 | * than</em> @p __val, or end() if every element is less | | 2009 | * than</em> @p __val, or end() if every element is less |
2010 | * than @p __val. | | 2010 | * than @p __val. |
2011 | * @ingroup binary_search_algorithms | | 2011 | * @ingroup binary_search_algorithms |
2012 | * | | 2012 | * |
2013 | * The comparison function should have the same effects on ordering as | | 2013 | * The comparison function should have the same effects on ordering as |
2014 | * the function used for the initial sort. | | 2014 | * the function used for the initial sort. |
2015 | */ | | 2015 | */ |
2016 | template<typename _ForwardIterator, typename _Tp, typename _Compare> | | 2016 | template<typename _ForwardIterator, typename _Tp, typename _Compare> |
2017 | inline _ForwardIterator | | 2017 | inline _ForwardIterator |
2018 | lower_bound(_ForwardIterator __first, _ForwardIterator __last, | | 2018 | lower_bound(_ForwardIterator __first, _ForwardIterator __last, |
2019 | const _Tp& __val, _Compare __comp) | | 2019 | const _Tp& __val, _Compare __comp) |
2020 | { | | 2020 | { |
2021 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2021 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2022 | _ValueType __unused; | | 2022 | _ValueType __attribute__((__unused__)); |
2023 | | | 2023 | |
2024 | // concept requirements | | 2024 | // concept requirements |
2025 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2025 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2026 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 2026 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
2027 | _ValueType, _Tp>) | | 2027 | _ValueType, _Tp>) |
2028 | __glibcxx_requires_partitioned_lower_pred(__first, __last, | | 2028 | __glibcxx_requires_partitioned_lower_pred(__first, __last, |
2029 | __val, __comp); | | 2029 | __val, __comp); |
2030 | | | 2030 | |
2031 | return std::__lower_bound(__first, __last, __val, | | 2031 | return std::__lower_bound(__first, __last, __val, |
2032 | __gnu_cxx::__ops::__iter_comp_val(__comp)); | | 2032 | __gnu_cxx::__ops::__iter_comp_val(__comp)); |
2033 | } | | 2033 | } |
2034 | | | 2034 | |
2035 | template<typename _ForwardIterator, typename _Tp, typename _Compare> | | 2035 | template<typename _ForwardIterator, typename _Tp, typename _Compare> |
| @@ -2066,27 +2066,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2066,27 +2066,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2066 | * @param __first An iterator. | | 2066 | * @param __first An iterator. |
2067 | * @param __last Another iterator. | | 2067 | * @param __last Another iterator. |
2068 | * @param __val The search term. | | 2068 | * @param __val The search term. |
2069 | * @return An iterator pointing to the first element greater than @p __val, | | 2069 | * @return An iterator pointing to the first element greater than @p __val, |
2070 | * or end() if no elements are greater than @p __val. | | 2070 | * or end() if no elements are greater than @p __val. |
2071 | * @ingroup binary_search_algorithms | | 2071 | * @ingroup binary_search_algorithms |
2072 | */ | | 2072 | */ |
2073 | template<typename _ForwardIterator, typename _Tp> | | 2073 | template<typename _ForwardIterator, typename _Tp> |
2074 | inline _ForwardIterator | | 2074 | inline _ForwardIterator |
2075 | upper_bound(_ForwardIterator __first, _ForwardIterator __last, | | 2075 | upper_bound(_ForwardIterator __first, _ForwardIterator __last, |
2076 | const _Tp& __val) | | 2076 | const _Tp& __val) |
2077 | { | | 2077 | { |
2078 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2078 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2079 | _ValueType __unused; | | 2079 | _ValueType __attribute__((__unused__)); |
2080 | | | 2080 | |
2081 | // concept requirements | | 2081 | // concept requirements |
2082 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2082 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2083 | __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) | | 2083 | __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) |
2084 | __glibcxx_requires_partitioned_upper(__first, __last, __val); | | 2084 | __glibcxx_requires_partitioned_upper(__first, __last, __val); |
2085 | | | 2085 | |
2086 | return std::__upper_bound(__first, __last, __val, | | 2086 | return std::__upper_bound(__first, __last, __val, |
2087 | __gnu_cxx::__ops::__val_less_iter()); | | 2087 | __gnu_cxx::__ops::__val_less_iter()); |
2088 | } | | 2088 | } |
2089 | | | 2089 | |
2090 | /** | | 2090 | /** |
2091 | * @brief Finds the last position in which @p __val could be inserted | | 2091 | * @brief Finds the last position in which @p __val could be inserted |
2092 | * without changing the ordering. | | 2092 | * without changing the ordering. |
| @@ -2098,27 +2098,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2098,27 +2098,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2098 | * @return An iterator pointing to the first element greater than @p __val, | | 2098 | * @return An iterator pointing to the first element greater than @p __val, |
2099 | * or end() if no elements are greater than @p __val. | | 2099 | * or end() if no elements are greater than @p __val. |
2100 | * @ingroup binary_search_algorithms | | 2100 | * @ingroup binary_search_algorithms |
2101 | * | | 2101 | * |
2102 | * The comparison function should have the same effects on ordering as | | 2102 | * The comparison function should have the same effects on ordering as |
2103 | * the function used for the initial sort. | | 2103 | * the function used for the initial sort. |
2104 | */ | | 2104 | */ |
2105 | template<typename _ForwardIterator, typename _Tp, typename _Compare> | | 2105 | template<typename _ForwardIterator, typename _Tp, typename _Compare> |
2106 | inline _ForwardIterator | | 2106 | inline _ForwardIterator |
2107 | upper_bound(_ForwardIterator __first, _ForwardIterator __last, | | 2107 | upper_bound(_ForwardIterator __first, _ForwardIterator __last, |
2108 | const _Tp& __val, _Compare __comp) | | 2108 | const _Tp& __val, _Compare __comp) |
2109 | { | | 2109 | { |
2110 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2110 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2111 | _ValueType __unused; | | 2111 | _ValueType __attribute__((__unused__)); |
2112 | | | 2112 | |
2113 | // concept requirements | | 2113 | // concept requirements |
2114 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2114 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2115 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 2115 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
2116 | _Tp, _ValueType>) | | 2116 | _Tp, _ValueType>) |
2117 | __glibcxx_requires_partitioned_upper_pred(__first, __last, | | 2117 | __glibcxx_requires_partitioned_upper_pred(__first, __last, |
2118 | __val, __comp); | | 2118 | __val, __comp); |
2119 | | | 2119 | |
2120 | return std::__upper_bound(__first, __last, __val, | | 2120 | return std::__upper_bound(__first, __last, __val, |
2121 | __gnu_cxx::__ops::__val_comp_iter(__comp)); | | 2121 | __gnu_cxx::__ops::__val_comp_iter(__comp)); |
2122 | } | | 2122 | } |
2123 | | | 2123 | |
2124 | template<typename _ForwardIterator, typename _Tp, | | 2124 | template<typename _ForwardIterator, typename _Tp, |
| @@ -2172,27 +2172,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2172,27 +2172,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2172 | * This is equivalent to | | 2172 | * This is equivalent to |
2173 | * @code | | 2173 | * @code |
2174 | * std::make_pair(lower_bound(__first, __last, __val), | | 2174 | * std::make_pair(lower_bound(__first, __last, __val), |
2175 | * upper_bound(__first, __last, __val)) | | 2175 | * upper_bound(__first, __last, __val)) |
2176 | * @endcode | | 2176 | * @endcode |
2177 | * but does not actually call those functions. | | 2177 | * but does not actually call those functions. |
2178 | */ | | 2178 | */ |
2179 | template<typename _ForwardIterator, typename _Tp> | | 2179 | template<typename _ForwardIterator, typename _Tp> |
2180 | inline pair<_ForwardIterator, _ForwardIterator> | | 2180 | inline pair<_ForwardIterator, _ForwardIterator> |
2181 | equal_range(_ForwardIterator __first, _ForwardIterator __last, | | 2181 | equal_range(_ForwardIterator __first, _ForwardIterator __last, |
2182 | const _Tp& __val) | | 2182 | const _Tp& __val) |
2183 | { | | 2183 | { |
2184 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2184 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2185 | _ValueType __unused; | | 2185 | _ValueType __attribute__((__unused__)); |
2186 | | | 2186 | |
2187 | // concept requirements | | 2187 | // concept requirements |
2188 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2188 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2189 | __glibcxx_function_requires(_LessThanOpConcept<_ValueType, _Tp>) | | 2189 | __glibcxx_function_requires(_LessThanOpConcept<_ValueType, _Tp>) |
2190 | __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) | | 2190 | __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) |
2191 | __glibcxx_requires_partitioned_lower(__first, __last, __val); | | 2191 | __glibcxx_requires_partitioned_lower(__first, __last, __val); |
2192 | __glibcxx_requires_partitioned_upper(__first, __last, __val); | | 2192 | __glibcxx_requires_partitioned_upper(__first, __last, __val); |
2193 | | | 2193 | |
2194 | return std::__equal_range(__first, __last, __val, | | 2194 | return std::__equal_range(__first, __last, __val, |
2195 | __gnu_cxx::__ops::__iter_less_val(), | | 2195 | __gnu_cxx::__ops::__iter_less_val(), |
2196 | __gnu_cxx::__ops::__val_less_iter()); | | 2196 | __gnu_cxx::__ops::__val_less_iter()); |
2197 | } | | 2197 | } |
2198 | | | 2198 | |
| @@ -2209,27 +2209,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2209,27 +2209,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2209 | * This is equivalent to | | 2209 | * This is equivalent to |
2210 | * @code | | 2210 | * @code |
2211 | * std::make_pair(lower_bound(__first, __last, __val, __comp), | | 2211 | * std::make_pair(lower_bound(__first, __last, __val, __comp), |
2212 | * upper_bound(__first, __last, __val, __comp)) | | 2212 | * upper_bound(__first, __last, __val, __comp)) |
2213 | * @endcode | | 2213 | * @endcode |
2214 | * but does not actually call those functions. | | 2214 | * but does not actually call those functions. |
2215 | */ | | 2215 | */ |
2216 | template<typename _ForwardIterator, typename _Tp, typename _Compare> | | 2216 | template<typename _ForwardIterator, typename _Tp, typename _Compare> |
2217 | inline pair<_ForwardIterator, _ForwardIterator> | | 2217 | inline pair<_ForwardIterator, _ForwardIterator> |
2218 | equal_range(_ForwardIterator __first, _ForwardIterator __last, | | 2218 | equal_range(_ForwardIterator __first, _ForwardIterator __last, |
2219 | const _Tp& __val, _Compare __comp) | | 2219 | const _Tp& __val, _Compare __comp) |
2220 | { | | 2220 | { |
2221 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2221 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2222 | _ValueType __unused; | | 2222 | _ValueType __attribute__((__unused__)); |
2223 | | | 2223 | |
2224 | // concept requirements | | 2224 | // concept requirements |
2225 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2225 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2226 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 2226 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
2227 | _ValueType, _Tp>) | | 2227 | _ValueType, _Tp>) |
2228 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 2228 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
2229 | _Tp, _ValueType>) | | 2229 | _Tp, _ValueType>) |
2230 | __glibcxx_requires_partitioned_lower_pred(__first, __last, | | 2230 | __glibcxx_requires_partitioned_lower_pred(__first, __last, |
2231 | __val, __comp); | | 2231 | __val, __comp); |
2232 | __glibcxx_requires_partitioned_upper_pred(__first, __last, | | 2232 | __glibcxx_requires_partitioned_upper_pred(__first, __last, |
2233 | __val, __comp); | | 2233 | __val, __comp); |
2234 | | | 2234 | |
2235 | return std::__equal_range(__first, __last, __val, | | 2235 | return std::__equal_range(__first, __last, __val, |
| @@ -2245,27 +2245,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2245,27 +2245,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2245 | * @param __val The search term. | | 2245 | * @param __val The search term. |
2246 | * @return True if @p __val (or its equivalent) is in [@p | | 2246 | * @return True if @p __val (or its equivalent) is in [@p |
2247 | * __first,@p __last ]. | | 2247 | * __first,@p __last ]. |
2248 | * | | 2248 | * |
2249 | * Note that this does not actually return an iterator to @p __val. For | | 2249 | * Note that this does not actually return an iterator to @p __val. For |
2250 | * that, use std::find or a container's specialized find member functions. | | 2250 | * that, use std::find or a container's specialized find member functions. |
2251 | */ | | 2251 | */ |
2252 | template<typename _ForwardIterator, typename _Tp> | | 2252 | template<typename _ForwardIterator, typename _Tp> |
2253 | bool | | 2253 | bool |
2254 | binary_search(_ForwardIterator __first, _ForwardIterator __last, | | 2254 | binary_search(_ForwardIterator __first, _ForwardIterator __last, |
2255 | const _Tp& __val) | | 2255 | const _Tp& __val) |
2256 | { | | 2256 | { |
2257 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2257 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2258 | _ValueType __unused; | | 2258 | _ValueType __attribute__((__unused__)); |
2259 | | | 2259 | |
2260 | // concept requirements | | 2260 | // concept requirements |
2261 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2261 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2262 | __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) | | 2262 | __glibcxx_function_requires(_LessThanOpConcept<_Tp, _ValueType>) |
2263 | __glibcxx_requires_partitioned_lower(__first, __last, __val); | | 2263 | __glibcxx_requires_partitioned_lower(__first, __last, __val); |
2264 | __glibcxx_requires_partitioned_upper(__first, __last, __val); | | 2264 | __glibcxx_requires_partitioned_upper(__first, __last, __val); |
2265 | | | 2265 | |
2266 | _ForwardIterator __i | | 2266 | _ForwardIterator __i |
2267 | = std::__lower_bound(__first, __last, __val, | | 2267 | = std::__lower_bound(__first, __last, __val, |
2268 | __gnu_cxx::__ops::__iter_less_val()); | | 2268 | __gnu_cxx::__ops::__iter_less_val()); |
2269 | return __i != __last && !(__val < *__i); | | 2269 | return __i != __last && !(__val < *__i); |
2270 | } | | 2270 | } |
2271 | | | 2271 | |
| @@ -2280,27 +2280,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION | | | @@ -2280,27 +2280,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION |
2280 | * | | 2280 | * |
2281 | * Note that this does not actually return an iterator to @p __val. For | | 2281 | * Note that this does not actually return an iterator to @p __val. For |
2282 | * that, use std::find or a container's specialized find member functions. | | 2282 | * that, use std::find or a container's specialized find member functions. |
2283 | * | | 2283 | * |
2284 | * The comparison function should have the same effects on ordering as | | 2284 | * The comparison function should have the same effects on ordering as |
2285 | * the function used for the initial sort. | | 2285 | * the function used for the initial sort. |
2286 | */ | | 2286 | */ |
2287 | template<typename _ForwardIterator, typename _Tp, typename _Compare> | | 2287 | template<typename _ForwardIterator, typename _Tp, typename _Compare> |
2288 | bool | | 2288 | bool |
2289 | binary_search(_ForwardIterator __first, _ForwardIterator __last, | | 2289 | binary_search(_ForwardIterator __first, _ForwardIterator __last, |
2290 | const _Tp& __val, _Compare __comp) | | 2290 | const _Tp& __val, _Compare __comp) |
2291 | { | | 2291 | { |
2292 | typedef typename iterator_traits<_ForwardIterator>::value_type | | 2292 | typedef typename iterator_traits<_ForwardIterator>::value_type |
2293 | _ValueType __unused; | | 2293 | _ValueType __attribute__((__unused__)); |
2294 | | | 2294 | |
2295 | // concept requirements | | 2295 | // concept requirements |
2296 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) | | 2296 | __glibcxx_function_requires(_ForwardIteratorConcept<_ForwardIterator>) |
2297 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, | | 2297 | __glibcxx_function_requires(_BinaryPredicateConcept<_Compare, |
2298 | _Tp, _ValueType>) | | 2298 | _Tp, _ValueType>) |
2299 | __glibcxx_requires_partitioned_lower_pred(__first, __last, | | 2299 | __glibcxx_requires_partitioned_lower_pred(__first, __last, |
2300 | __val, __comp); | | 2300 | __val, __comp); |
2301 | __glibcxx_requires_partitioned_upper_pred(__first, __last, | | 2301 | __glibcxx_requires_partitioned_upper_pred(__first, __last, |
2302 | __val, __comp); | | 2302 | __val, __comp); |
2303 | | | 2303 | |
2304 | _ForwardIterator __i | | 2304 | _ForwardIterator __i |
2305 | = std::__lower_bound(__first, __last, __val, | | 2305 | = std::__lower_bound(__first, __last, __val, |
2306 | __gnu_cxx::__ops::__iter_comp_val(__comp)); | | 2306 | __gnu_cxx::__ops::__iter_comp_val(__comp)); |