summaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/bits/algorithmfwd.h
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/bits/algorithmfwd.h')
-rw-r--r--libstdc++-v3/include/bits/algorithmfwd.h253
1 files changed, 133 insertions, 120 deletions
diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h
index cd98fe0594..3ff4ff7123 100644
--- a/libstdc++-v3/include/bits/algorithmfwd.h
+++ b/libstdc++-v3/include/bits/algorithmfwd.h
@@ -1,6 +1,6 @@
// <algorithm> Forward declarations -*- C++ -*-
-// Copyright (C) 2007-2016 Free Software Foundation, Inc.
+// Copyright (C) 2007-2017 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -45,13 +45,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/*
adjacent_find
- all_of (C++0x)
- any_of (C++0x)
+ all_of (C++11)
+ any_of (C++11)
binary_search
+ clamp (C++17)
copy
copy_backward
- copy_if (C++0x)
- copy_n (C++0x)
+ copy_if (C++11)
+ copy_n (C++11)
count
count_if
equal
@@ -62,17 +63,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
find_end
find_first_of
find_if
- find_if_not (C++0x)
+ find_if_not (C++11)
for_each
generate
generate_n
includes
inplace_merge
- is_heap (C++0x)
- is_heap_until (C++0x)
- is_partitioned (C++0x)
- is_sorted (C++0x)
- is_sorted_until (C++0x)
+ is_heap (C++11)
+ is_heap_until (C++11)
+ is_partitioned (C++11)
+ is_sorted (C++11)
+ is_sorted_until (C++11)
iter_swap
lexicographical_compare
lower_bound
@@ -82,17 +83,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
merge
min
min_element
- minmax (C++0x)
- minmax_element (C++0x)
+ minmax (C++11)
+ minmax_element (C++11)
mismatch
next_permutation
- none_of (C++0x)
+ none_of (C++11)
nth_element
partial_sort
partial_sort_copy
partition
- partition_copy (C++0x)
- partition_point (C++0x)
+ partition_copy (C++11)
+ partition_point (C++11)
pop_heap
prev_permutation
push_heap
@@ -115,7 +116,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
set_intersection
set_symmetric_difference
set_union
- shuffle (C++0x)
+ shuffle (C++11)
sort
sort_heap
stable_partition
@@ -167,12 +168,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
*
* These algorithms are variations of a classic binary search, and
* all assume that the sequence being searched is already sorted.
- *
+ *
* The number of comparisons will be logarithmic (and as few as
* possible). The number of steps through the sequence will be
* logarithmic for random-access iterators (e.g., pointers), and
* linear otherwise.
- *
+ *
* The LWG has passed Defect Report 270, which notes: <em>The
* proposed resolution reinterprets binary search. Instead of
* thinking about searching for a value in a sorted range, we view
@@ -201,15 +202,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
template<typename _FIter, typename _Tp>
- bool
+ bool
binary_search(_FIter, _FIter, const _Tp&);
template<typename _FIter, typename _Tp, typename _Compare>
- bool
+ bool
binary_search(_FIter, _FIter, const _Tp&, _Compare);
+#if __cplusplus > 201402L
+ template<typename _Tp>
+ _GLIBCXX14_CONSTEXPR
+ const _Tp&
+ clamp(const _Tp&, const _Tp&, const _Tp&);
+
+ template<typename _Tp, typename _Compare>
+ _GLIBCXX14_CONSTEXPR
+ const _Tp&
+ clamp(const _Tp&, const _Tp&, const _Tp&, _Compare);
+#endif
+
template<typename _IIter, typename _OIter>
- _OIter
+ _OIter
copy(_IIter, _IIter, _OIter);
template<typename _BIter1, typename _BIter2>
@@ -238,7 +251,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
equal_range(_FIter, _FIter, const _Tp&, _Compare);
template<typename _FIter, typename _Tp>
- void
+ void
fill(_FIter, _FIter, const _Tp&);
template<typename _OIter, typename _Size, typename _Tp>
@@ -269,36 +282,36 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// generate_n
template<typename _IIter1, typename _IIter2>
- bool
+ bool
includes(_IIter1, _IIter1, _IIter2, _IIter2);
template<typename _IIter1, typename _IIter2, typename _Compare>
- bool
+ bool
includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
template<typename _BIter>
- void
+ void
inplace_merge(_BIter, _BIter, _BIter);
template<typename _BIter, typename _Compare>
- void
+ void
inplace_merge(_BIter, _BIter, _BIter, _Compare);
#if __cplusplus >= 201103L
template<typename _RAIter>
- bool
+ bool
is_heap(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- bool
+ bool
is_heap(_RAIter, _RAIter, _Compare);
template<typename _RAIter>
- _RAIter
+ _RAIter
is_heap_until(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- _RAIter
+ _RAIter
is_heap_until(_RAIter, _RAIter, _Compare);
template<typename _IIter, typename _Predicate>
@@ -315,63 +328,63 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate);
template<typename _FIter>
- bool
+ bool
is_sorted(_FIter, _FIter);
template<typename _FIter, typename _Compare>
- bool
+ bool
is_sorted(_FIter, _FIter, _Compare);
template<typename _FIter>
- _FIter
+ _FIter
is_sorted_until(_FIter, _FIter);
template<typename _FIter, typename _Compare>
- _FIter
+ _FIter
is_sorted_until(_FIter, _FIter, _Compare);
#endif
template<typename _FIter1, typename _FIter2>
- void
+ void
iter_swap(_FIter1, _FIter2);
template<typename _FIter, typename _Tp>
- _FIter
+ _FIter
lower_bound(_FIter, _FIter, const _Tp&);
template<typename _FIter, typename _Tp, typename _Compare>
- _FIter
+ _FIter
lower_bound(_FIter, _FIter, const _Tp&, _Compare);
template<typename _RAIter>
- void
+ void
make_heap(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
make_heap(_RAIter, _RAIter, _Compare);
- template<typename _Tp>
+ template<typename _Tp>
_GLIBCXX14_CONSTEXPR
- const _Tp&
+ const _Tp&
max(const _Tp&, const _Tp&);
template<typename _Tp, typename _Compare>
_GLIBCXX14_CONSTEXPR
- const _Tp&
+ const _Tp&
max(const _Tp&, const _Tp&, _Compare);
// max_element
// merge
- template<typename _Tp>
+ template<typename _Tp>
_GLIBCXX14_CONSTEXPR
- const _Tp&
+ const _Tp&
min(const _Tp&, const _Tp&);
template<typename _Tp, typename _Compare>
_GLIBCXX14_CONSTEXPR
- const _Tp&
+ const _Tp&
min(const _Tp&, const _Tp&, _Compare);
// min_element
@@ -379,7 +392,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus >= 201103L
template<typename _Tp>
_GLIBCXX14_CONSTEXPR
- pair<const _Tp&, const _Tp&>
+ pair<const _Tp&, const _Tp&>
minmax(const _Tp&, const _Tp&);
template<typename _Tp, typename _Compare>
@@ -431,11 +444,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// mismatch
template<typename _BIter>
- bool
+ bool
next_permutation(_BIter, _BIter);
template<typename _BIter, typename _Compare>
- bool
+ bool
next_permutation(_BIter, _BIter, _Compare);
#if __cplusplus >= 201103L
@@ -469,65 +482,65 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
template<typename _RAIter>
- void
+ void
pop_heap(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
pop_heap(_RAIter, _RAIter, _Compare);
template<typename _BIter>
- bool
+ bool
prev_permutation(_BIter, _BIter);
template<typename _BIter, typename _Compare>
- bool
+ bool
prev_permutation(_BIter, _BIter, _Compare);
template<typename _RAIter>
- void
+ void
push_heap(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
push_heap(_RAIter, _RAIter, _Compare);
// random_shuffle
template<typename _FIter, typename _Tp>
- _FIter
+ _FIter
remove(_FIter, _FIter, const _Tp&);
template<typename _FIter, typename _Predicate>
- _FIter
+ _FIter
remove_if(_FIter, _FIter, _Predicate);
template<typename _IIter, typename _OIter, typename _Tp>
- _OIter
+ _OIter
remove_copy(_IIter, _IIter, _OIter, const _Tp&);
template<typename _IIter, typename _OIter, typename _Predicate>
- _OIter
+ _OIter
remove_copy_if(_IIter, _IIter, _OIter, _Predicate);
// replace
template<typename _IIter, typename _OIter, typename _Tp>
- _OIter
+ _OIter
replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&);
template<typename _Iter, typename _OIter, typename _Predicate, typename _Tp>
- _OIter
+ _OIter
replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&);
// replace_if
template<typename _BIter>
- void
+ void
reverse(_BIter, _BIter);
template<typename _BIter, typename _OIter>
- _OIter
+ _OIter
reverse_copy(_BIter, _BIter, _OIter);
inline namespace _V2
@@ -538,7 +551,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
template<typename _FIter, typename _OIter>
- _OIter
+ _OIter
rotate_copy(_FIter, _FIter, _FIter, _OIter);
// search
@@ -555,15 +568,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
template<typename _RAIter>
- void
+ void
sort_heap(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
sort_heap(_RAIter, _RAIter, _Compare);
template<typename _BIter, typename _Predicate>
- _BIter
+ _BIter
stable_partition(_BIter, _BIter, _Predicate);
#if __cplusplus < 201103L
@@ -579,27 +592,27 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#endif
template<typename _FIter1, typename _FIter2>
- _FIter2
+ _FIter2
swap_ranges(_FIter1, _FIter1, _FIter2);
// transform
template<typename _FIter>
- _FIter
+ _FIter
unique(_FIter, _FIter);
template<typename _FIter, typename _BinaryPredicate>
- _FIter
+ _FIter
unique(_FIter, _FIter, _BinaryPredicate);
// unique_copy
template<typename _FIter, typename _Tp>
- _FIter
+ _FIter
upper_bound(_FIter, _FIter, const _Tp&);
template<typename _FIter, typename _Tp, typename _Compare>
- _FIter
+ _FIter
upper_bound(_FIter, _FIter, const _Tp&, _Compare);
_GLIBCXX_END_NAMESPACE_VERSION
@@ -607,11 +620,11 @@ _GLIBCXX_END_NAMESPACE_VERSION
_GLIBCXX_BEGIN_NAMESPACE_ALGO
template<typename _FIter>
- _FIter
+ _FIter
adjacent_find(_FIter, _FIter);
template<typename _FIter, typename _BinaryPredicate>
- _FIter
+ _FIter
adjacent_find(_FIter, _FIter, _BinaryPredicate);
template<typename _IIter, typename _Tp>
@@ -623,15 +636,15 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
count_if(_IIter, _IIter, _Predicate);
template<typename _IIter1, typename _IIter2>
- bool
+ bool
equal(_IIter1, _IIter1, _IIter2);
template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
- bool
+ bool
equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
template<typename _IIter, typename _Tp>
- _IIter
+ _IIter
find(_IIter, _IIter, const _Tp&);
template<typename _FIter1, typename _FIter2>
@@ -647,11 +660,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
find_if(_IIter, _IIter, _Predicate);
template<typename _IIter, typename _Funct>
- _Funct
+ _Funct
for_each(_IIter, _IIter, _Funct);
template<typename _FIter, typename _Generator>
- void
+ void
generate(_FIter, _FIter, _Generator);
template<typename _OIter, typename _Size, typename _Generator>
@@ -659,40 +672,40 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
generate_n(_OIter, _Size, _Generator);
template<typename _IIter1, typename _IIter2>
- bool
+ bool
lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
template<typename _IIter1, typename _IIter2, typename _Compare>
- bool
+ bool
lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
template<typename _FIter>
_GLIBCXX14_CONSTEXPR
- _FIter
+ _FIter
max_element(_FIter, _FIter);
template<typename _FIter, typename _Compare>
_GLIBCXX14_CONSTEXPR
- _FIter
+ _FIter
max_element(_FIter, _FIter, _Compare);
template<typename _IIter1, typename _IIter2, typename _OIter>
- _OIter
+ _OIter
merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
- template<typename _IIter1, typename _IIter2, typename _OIter,
+ template<typename _IIter1, typename _IIter2, typename _OIter,
typename _Compare>
- _OIter
+ _OIter
merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
template<typename _FIter>
_GLIBCXX14_CONSTEXPR
- _FIter
+ _FIter
min_element(_FIter, _FIter);
template<typename _FIter, typename _Compare>
_GLIBCXX14_CONSTEXPR
- _FIter
+ _FIter
min_element(_FIter, _FIter, _Compare);
template<typename _IIter1, typename _IIter2>
@@ -704,31 +717,31 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
template<typename _RAIter>
- void
+ void
nth_element(_RAIter, _RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
nth_element(_RAIter, _RAIter, _RAIter, _Compare);
template<typename _RAIter>
- void
+ void
partial_sort(_RAIter, _RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
template<typename _BIter, typename _Predicate>
- _BIter
+ _BIter
partition(_BIter, _BIter, _Predicate);
template<typename _RAIter>
- void
+ void
random_shuffle(_RAIter, _RAIter);
template<typename _RAIter, typename _Generator>
- void
+ void
random_shuffle(_RAIter, _RAIter,
#if __cplusplus >= 201103L
_Generator&&);
@@ -737,98 +750,98 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
#endif
template<typename _FIter, typename _Tp>
- void
+ void
replace(_FIter, _FIter, const _Tp&, const _Tp&);
template<typename _FIter, typename _Predicate, typename _Tp>
- void
+ void
replace_if(_FIter, _FIter, _Predicate, const _Tp&);
template<typename _FIter1, typename _FIter2>
- _FIter1
+ _FIter1
search(_FIter1, _FIter1, _FIter2, _FIter2);
template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
- _FIter1
+ _FIter1
search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
template<typename _FIter, typename _Size, typename _Tp>
- _FIter
+ _FIter
search_n(_FIter, _FIter, _Size, const _Tp&);
- template<typename _FIter, typename _Size, typename _Tp,
+ template<typename _FIter, typename _Size, typename _Tp,
typename _BinaryPredicate>
- _FIter
+ _FIter
search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate);
template<typename _IIter1, typename _IIter2, typename _OIter>
- _OIter
+ _OIter
set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
- template<typename _IIter1, typename _IIter2, typename _OIter,
+ template<typename _IIter1, typename _IIter2, typename _OIter,
typename _Compare>
- _OIter
+ _OIter
set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
template<typename _IIter1, typename _IIter2, typename _OIter>
- _OIter
+ _OIter
set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
template<typename _IIter1, typename _IIter2, typename _OIter,
typename _Compare>
- _OIter
+ _OIter
set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
template<typename _IIter1, typename _IIter2, typename _OIter>
_OIter
set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
- template<typename _IIter1, typename _IIter2, typename _OIter,
+ template<typename _IIter1, typename _IIter2, typename _OIter,
typename _Compare>
_OIter
- set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2,
+ set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2,
_OIter, _Compare);
template<typename _IIter1, typename _IIter2, typename _OIter>
- _OIter
+ _OIter
set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
template<typename _IIter1, typename _IIter2, typename _OIter,
typename _Compare>
- _OIter
+ _OIter
set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
template<typename _RAIter>
- void
+ void
sort(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
sort(_RAIter, _RAIter, _Compare);
template<typename _RAIter>
- void
+ void
stable_sort(_RAIter, _RAIter);
template<typename _RAIter, typename _Compare>
- void
+ void
stable_sort(_RAIter, _RAIter, _Compare);
template<typename _IIter, typename _OIter, typename _UnaryOperation>
- _OIter
+ _OIter
transform(_IIter, _IIter, _OIter, _UnaryOperation);
- template<typename _IIter1, typename _IIter2, typename _OIter,
+ template<typename _IIter1, typename _IIter2, typename _OIter,
typename _BinaryOperation>
- _OIter
+ _OIter
transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation);
template<typename _IIter, typename _OIter>
- _OIter
+ _OIter
unique_copy(_IIter, _IIter, _OIter);
template<typename _IIter, typename _OIter, typename _BinaryPredicate>
- _OIter
+ _OIter
unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate);
_GLIBCXX_END_NAMESPACE_ALGO