2013-03-08 21:39:24 +00:00
|
|
|
// <algorithm> Forward declarations -*- C++ -*-
|
2007-09-11 22:32:51 +00:00
|
|
|
|
2014-01-02 22:30:10 +00:00
|
|
|
// Copyright (C) 2007-2014 Free Software Foundation, Inc.
|
2007-09-11 22:32:51 +00:00
|
|
|
//
|
|
|
|
// 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
|
|
|
|
// terms of the GNU General Public License as published by the
|
2009-04-09 17:00:19 +02:00
|
|
|
// Free Software Foundation; either version 3, or (at your option)
|
2007-09-11 22:32:51 +00:00
|
|
|
// any later version.
|
|
|
|
|
|
|
|
// This library is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
|
2009-04-09 17:00:19 +02:00
|
|
|
// Under Section 7 of GPL version 3, you are granted additional
|
|
|
|
// permissions described in the GCC Runtime Library Exception, version
|
|
|
|
// 3.1, as published by the Free Software Foundation.
|
|
|
|
|
|
|
|
// You should have received a copy of the GNU General Public License and
|
|
|
|
// a copy of the GCC Runtime Library Exception along with this program;
|
|
|
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
|
|
|
// <http://www.gnu.org/licenses/>.
|
2007-09-11 22:32:51 +00:00
|
|
|
|
|
|
|
/** @file bits/algorithmfwd.h
|
|
|
|
* This is an internal header file, included by other library headers.
|
2010-12-19 09:21:16 +00:00
|
|
|
* Do not attempt to use it directly. @headername{algorithm}
|
2007-09-11 22:32:51 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _GLIBCXX_ALGORITHMFWD_H
|
|
|
|
#define _GLIBCXX_ALGORITHMFWD_H 1
|
|
|
|
|
|
|
|
#pragma GCC system_header
|
|
|
|
|
|
|
|
#include <bits/c++config.h>
|
|
|
|
#include <bits/stl_pair.h>
|
|
|
|
#include <bits/stl_iterator_base_types.h>
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2008-09-16 23:17:09 +00:00
|
|
|
#include <initializer_list>
|
2011-11-01 00:02:45 -04:00
|
|
|
#endif
|
2007-09-11 22:32:51 +00:00
|
|
|
|
PR libstdc++/36104 part four
2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part four
* include/bits/c++config (_GLIBCXX_STD): Remove.
(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
(_GLIBCXX_P): Now _GLIBCXX_STD_A.
(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
_GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
_GLIBCXX_INLINE_PROFILE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
(_GLIBCXX_END_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
(_GLIBCXX_END_NAMESPACE_ALGO): Add.
(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
(_GLIBCXX_END_NAMESPACE_VERSION): Add.
(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
* include/*: Use new macros for namespace scope.
* config/*: Same.
* src/*: Same.
* src/Makefile.am (sources): Remove debug_list.cc, add
compatibility-debug_list-2.cc.
(parallel_sources): Remove parallel_list.cc, add
compatibility-parallel_list-2.cc.
(compatibility-parallel_list-2.[o,lo]): New rule.
* src/Makefile.in: Regenerate.
* src/debug_list.cc: Remove.
* src/parallel_list.cc: Remove.
* src/compatibility-list-2.cc: New.
* src/compatibility-debug_list-2.cc: New.
* src/compatibility-parallel_list-2.cc: New.
* doc/doxygen/user.cfg.in: Adjust macros.
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
* testsuite/20_util/declval/requirements/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/forward/c_neg.cc: Same.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/forward_list/capacity/1.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Same.
* testsuite/23_containers/list/capacity/29134.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/25_algorithms/sort/35588.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
* testsuite/ext/profile/profiler_algos.cc: Same.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
From-SVN: r169421
2011-01-30 22:39:36 +00:00
|
|
|
namespace std _GLIBCXX_VISIBILITY(default)
|
|
|
|
{
|
|
|
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
2007-09-11 22:32:51 +00:00
|
|
|
|
2009-02-19 08:15:15 +00:00
|
|
|
/*
|
|
|
|
adjacent_find
|
|
|
|
all_of (C++0x)
|
|
|
|
any_of (C++0x)
|
|
|
|
binary_search
|
|
|
|
copy
|
|
|
|
copy_backward
|
|
|
|
copy_if (C++0x)
|
|
|
|
copy_n (C++0x)
|
|
|
|
count
|
|
|
|
count_if
|
|
|
|
equal
|
|
|
|
equal_range
|
|
|
|
fill
|
|
|
|
fill_n
|
|
|
|
find
|
|
|
|
find_end
|
|
|
|
find_first_of
|
|
|
|
find_if
|
|
|
|
find_if_not (C++0x)
|
|
|
|
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)
|
|
|
|
iter_swap
|
|
|
|
lexicographical_compare
|
|
|
|
lower_bound
|
|
|
|
make_heap
|
|
|
|
max
|
|
|
|
max_element
|
|
|
|
merge
|
|
|
|
min
|
|
|
|
min_element
|
|
|
|
minmax (C++0x)
|
|
|
|
minmax_element (C++0x)
|
|
|
|
mismatch
|
|
|
|
next_permutation
|
|
|
|
none_of (C++0x)
|
|
|
|
nth_element
|
|
|
|
partial_sort
|
|
|
|
partial_sort_copy
|
|
|
|
partition
|
|
|
|
partition_copy (C++0x)
|
|
|
|
partition_point (C++0x)
|
|
|
|
pop_heap
|
|
|
|
prev_permutation
|
|
|
|
push_heap
|
|
|
|
random_shuffle
|
|
|
|
remove
|
|
|
|
remove_copy
|
|
|
|
remove_copy_if
|
|
|
|
remove_if
|
|
|
|
replace
|
|
|
|
replace_copy
|
|
|
|
replace_copy_if
|
|
|
|
replace_if
|
|
|
|
reverse
|
|
|
|
reverse_copy
|
|
|
|
rotate
|
|
|
|
rotate_copy
|
|
|
|
search
|
|
|
|
search_n
|
|
|
|
set_difference
|
|
|
|
set_intersection
|
|
|
|
set_symmetric_difference
|
|
|
|
set_union
|
2010-03-19 10:36:57 +00:00
|
|
|
shuffle (C++0x)
|
2009-02-19 08:15:15 +00:00
|
|
|
sort
|
|
|
|
sort_heap
|
|
|
|
stable_partition
|
|
|
|
stable_sort
|
|
|
|
swap
|
|
|
|
swap_ranges
|
|
|
|
transform
|
|
|
|
unique
|
|
|
|
unique_copy
|
|
|
|
upper_bound
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @defgroup algorithms Algorithms
|
|
|
|
*
|
|
|
|
* Components for performing algorithmic operations. Includes
|
|
|
|
* non-modifying sequence, modifying (mutating) sequence, sorting,
|
|
|
|
* searching, merge, partition, heap, set, minima, maxima, and
|
|
|
|
* permutation operations.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2010-07-08 17:48:12 +00:00
|
|
|
* @defgroup mutating_algorithms Mutating
|
2009-02-21 00:45:21 +00:00
|
|
|
* @ingroup algorithms
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2010-07-08 17:48:12 +00:00
|
|
|
* @defgroup non_mutating_algorithms Non-Mutating
|
2009-02-21 00:45:21 +00:00
|
|
|
* @ingroup algorithms
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2010-07-08 17:48:12 +00:00
|
|
|
* @defgroup sorting_algorithms Sorting
|
2009-02-19 08:15:15 +00:00
|
|
|
* @ingroup algorithms
|
2009-02-21 00:45:21 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2010-07-08 17:48:12 +00:00
|
|
|
* @defgroup set_algorithms Set Operation
|
2009-02-21 00:45:21 +00:00
|
|
|
* @ingroup sorting_algorithms
|
2009-02-19 08:15:15 +00:00
|
|
|
*
|
|
|
|
* These algorithms are common set operations performed on sequences
|
|
|
|
* that are already sorted. The number of comparisons will be
|
|
|
|
* linear.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2010-07-08 17:48:12 +00:00
|
|
|
* @defgroup binary_search_algorithms Binary Search
|
2009-02-21 00:45:21 +00:00
|
|
|
* @ingroup sorting_algorithms
|
2009-02-19 08:15:15 +00:00
|
|
|
*
|
|
|
|
* 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
|
|
|
|
* that as an important special case of a more general algorithm:
|
|
|
|
* searching for the partition point in a partitioned range. We
|
|
|
|
* also add a guarantee that the old wording did not: we ensure that
|
|
|
|
* the upper bound is no earlier than the lower bound, that the pair
|
|
|
|
* returned by equal_range is a valid range, and that the first part
|
|
|
|
* of that pair is the lower bound.</em>
|
|
|
|
*
|
|
|
|
* The actual effect of the first sentence is that a comparison
|
|
|
|
* functor passed by the user doesn't necessarily need to induce a
|
|
|
|
* strict weak ordering relation. Rather, it partitions the range.
|
|
|
|
*/
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
// adjacent_find
|
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2008-06-26 17:55:23 +00:00
|
|
|
template<typename _IIter, typename _Predicate>
|
|
|
|
bool
|
|
|
|
all_of(_IIter, _IIter, _Predicate);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _Predicate>
|
|
|
|
bool
|
|
|
|
any_of(_IIter, _IIter, _Predicate);
|
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
bool
|
|
|
|
binary_search(_FIter, _FIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp, typename _Compare>
|
|
|
|
bool
|
|
|
|
binary_search(_FIter, _FIter, const _Tp&, _Compare);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
copy(_IIter, _IIter, _OIter);
|
|
|
|
|
|
|
|
template<typename _BIter1, typename _BIter2>
|
|
|
|
_BIter2
|
2007-09-26 17:04:06 +00:00
|
|
|
copy_backward(_BIter1, _BIter1, _BIter2);
|
2007-09-11 22:32:51 +00:00
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2008-06-26 17:55:23 +00:00
|
|
|
template<typename _IIter, typename _OIter, typename _Predicate>
|
|
|
|
_OIter
|
|
|
|
copy_if(_IIter, _IIter, _OIter, _Predicate);
|
2008-06-29 11:08:26 +00:00
|
|
|
|
|
|
|
template<typename _IIter, typename _Size, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
copy_n(_IIter, _Size, _OIter);
|
2008-06-26 17:55:23 +00:00
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
// count
|
|
|
|
// count_if
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
pair<_FIter, _FIter>
|
|
|
|
equal_range(_FIter, _FIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp, typename _Compare>
|
|
|
|
pair<_FIter, _FIter>
|
|
|
|
equal_range(_FIter, _FIter, const _Tp&, _Compare);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
void
|
|
|
|
fill(_FIter, _FIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _OIter, typename _Size, typename _Tp>
|
|
|
|
_OIter
|
|
|
|
fill_n(_OIter, _Size, const _Tp&);
|
|
|
|
|
|
|
|
// find
|
re PR libstdc++/33487 (parallel v3: more functions not in right namespace)
2007-10-06 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/33487
* include/parallel/algorithmfwd.h (for_each, generate, generate_n,
transform, replace, replace_if, max_element, min_element, count,
count_if): Consistently construct overloads.
* include/parallel/numericfwd.h (accumulate, adjacent_difference,
inner_product): Same.
* include/parallel/algobase.h: Same.
* include/parallel/algo.h: Same.
* include/parallel/numeric: Same.
* include/bits/algorithmfwd.h: Correct find_end placement.
* docs/html/parallel_mode.html: Document some of the interface
conventions.
* include/parallel/search.h (calc_borders): Only use operator ==.
* include/parallel/algorithmfwd.h: Move __gnu_sequential bits to...
* include/parallel/tags.h: ...here, and use a using directive.
* include/parallel/random_shuffle.h: Include stl_numeric. Qualify
uses of partial_num with __gnu_sequential.
* include/parallel/tree.h: Formatting.
From-SVN: r129054
2007-10-06 15:08:58 +00:00
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2>
|
|
|
|
_FIter1
|
|
|
|
find_end(_FIter1, _FIter1, _FIter2, _FIter2);
|
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
|
|
|
|
_FIter1
|
|
|
|
find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
// find_first_of
|
|
|
|
// find_if
|
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2008-06-25 16:39:15 +00:00
|
|
|
template<typename _IIter, typename _Predicate>
|
|
|
|
_IIter
|
|
|
|
find_if_not(_IIter, _IIter, _Predicate);
|
|
|
|
#endif
|
|
|
|
|
2008-06-26 17:55:23 +00:00
|
|
|
// for_each
|
|
|
|
// generate
|
|
|
|
// generate_n
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
template<typename _IIter1, typename _IIter2>
|
|
|
|
bool
|
|
|
|
includes(_IIter1, _IIter1, _IIter2, _IIter2);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _Compare>
|
|
|
|
bool
|
|
|
|
includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
|
|
|
|
|
|
|
|
template<typename _BIter>
|
|
|
|
void
|
|
|
|
inplace_merge(_BIter, _BIter, _BIter);
|
|
|
|
|
|
|
|
template<typename _BIter, typename _Compare>
|
|
|
|
void
|
|
|
|
inplace_merge(_BIter, _BIter, _BIter, _Compare);
|
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2007-10-12 16:26:03 +00:00
|
|
|
template<typename _RAIter>
|
|
|
|
bool
|
|
|
|
is_heap(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
bool
|
|
|
|
is_heap(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
_RAIter
|
|
|
|
is_heap_until(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
_RAIter
|
|
|
|
is_heap_until(_RAIter, _RAIter, _Compare);
|
2007-10-14 21:17:23 +00:00
|
|
|
|
2008-06-27 17:42:18 +00:00
|
|
|
template<typename _IIter, typename _Predicate>
|
|
|
|
bool
|
|
|
|
is_partitioned(_IIter, _IIter, _Predicate);
|
|
|
|
|
2011-01-14 01:21:51 +00:00
|
|
|
template<typename _FIter1, typename _FIter2>
|
|
|
|
bool
|
|
|
|
is_permutation(_FIter1, _FIter1, _FIter2);
|
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2,
|
|
|
|
typename _BinaryPredicate>
|
|
|
|
bool
|
|
|
|
is_permutation(_FIter1, _FIter1, _FIter2, _BinaryPredicate);
|
|
|
|
|
2007-10-14 21:17:23 +00:00
|
|
|
template<typename _FIter>
|
|
|
|
bool
|
|
|
|
is_sorted(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Compare>
|
|
|
|
bool
|
|
|
|
is_sorted(_FIter, _FIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
_FIter
|
|
|
|
is_sorted_until(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Compare>
|
|
|
|
_FIter
|
|
|
|
is_sorted_until(_FIter, _FIter, _Compare);
|
2007-10-12 16:26:03 +00:00
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
template<typename _FIter1, typename _FIter2>
|
|
|
|
void
|
|
|
|
iter_swap(_FIter1, _FIter2);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
_FIter
|
|
|
|
lower_bound(_FIter, _FIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp, typename _Compare>
|
|
|
|
_FIter
|
|
|
|
lower_bound(_FIter, _FIter, const _Tp&, _Compare);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
make_heap(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
make_heap(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _Tp>
|
|
|
|
const _Tp&
|
|
|
|
max(const _Tp&, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _Tp, typename _Compare>
|
|
|
|
const _Tp&
|
|
|
|
max(const _Tp&, const _Tp&, _Compare);
|
|
|
|
|
|
|
|
// max_element
|
|
|
|
// merge
|
|
|
|
|
|
|
|
template<typename _Tp>
|
|
|
|
const _Tp&
|
|
|
|
min(const _Tp&, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _Tp, typename _Compare>
|
|
|
|
const _Tp&
|
|
|
|
min(const _Tp&, const _Tp&, _Compare);
|
|
|
|
|
|
|
|
// min_element
|
2007-11-02 15:55:32 +00:00
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2007-11-02 15:55:32 +00:00
|
|
|
template<typename _Tp>
|
|
|
|
pair<const _Tp&, const _Tp&>
|
|
|
|
minmax(const _Tp&, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _Tp, typename _Compare>
|
|
|
|
pair<const _Tp&, const _Tp&>
|
|
|
|
minmax(const _Tp&, const _Tp&, _Compare);
|
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
pair<_FIter, _FIter>
|
|
|
|
minmax_element(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Compare>
|
|
|
|
pair<_FIter, _FIter>
|
|
|
|
minmax_element(_FIter, _FIter, _Compare);
|
2008-09-16 23:17:09 +00:00
|
|
|
|
|
|
|
template<typename _Tp>
|
2008-09-17 22:58:38 +00:00
|
|
|
_Tp
|
2008-09-16 23:17:09 +00:00
|
|
|
min(initializer_list<_Tp>);
|
|
|
|
|
|
|
|
template<typename _Tp, typename _Compare>
|
2008-09-17 22:58:38 +00:00
|
|
|
_Tp
|
2008-09-16 23:17:09 +00:00
|
|
|
min(initializer_list<_Tp>, _Compare);
|
|
|
|
|
|
|
|
template<typename _Tp>
|
2008-09-17 22:58:38 +00:00
|
|
|
_Tp
|
2008-09-16 23:17:09 +00:00
|
|
|
max(initializer_list<_Tp>);
|
|
|
|
|
|
|
|
template<typename _Tp, typename _Compare>
|
2008-09-17 22:58:38 +00:00
|
|
|
_Tp
|
2008-09-16 23:17:09 +00:00
|
|
|
max(initializer_list<_Tp>, _Compare);
|
|
|
|
|
|
|
|
template<typename _Tp>
|
2008-09-17 22:58:38 +00:00
|
|
|
pair<_Tp, _Tp>
|
2008-09-16 23:17:09 +00:00
|
|
|
minmax(initializer_list<_Tp>);
|
|
|
|
|
|
|
|
template<typename _Tp, typename _Compare>
|
2008-09-17 22:58:38 +00:00
|
|
|
pair<_Tp, _Tp>
|
2008-09-16 23:17:09 +00:00
|
|
|
minmax(initializer_list<_Tp>, _Compare);
|
2007-11-02 15:55:32 +00:00
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
// mismatch
|
|
|
|
|
|
|
|
template<typename _BIter>
|
|
|
|
bool
|
|
|
|
next_permutation(_BIter, _BIter);
|
|
|
|
|
|
|
|
template<typename _BIter, typename _Compare>
|
|
|
|
bool
|
|
|
|
next_permutation(_BIter, _BIter, _Compare);
|
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2008-06-26 17:55:23 +00:00
|
|
|
template<typename _IIter, typename _Predicate>
|
|
|
|
bool
|
|
|
|
none_of(_IIter, _IIter, _Predicate);
|
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
// nth_element
|
|
|
|
// partial_sort
|
|
|
|
|
|
|
|
template<typename _IIter, typename _RAIter>
|
|
|
|
_RAIter
|
|
|
|
partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _RAIter, typename _Compare>
|
|
|
|
_RAIter
|
|
|
|
partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare);
|
|
|
|
|
2008-06-26 17:55:23 +00:00
|
|
|
// partition
|
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2008-06-26 17:55:23 +00:00
|
|
|
template<typename _IIter, typename _OIter1,
|
|
|
|
typename _OIter2, typename _Predicate>
|
|
|
|
pair<_OIter1, _OIter2>
|
|
|
|
partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate);
|
2008-06-28 22:39:59 +00:00
|
|
|
|
|
|
|
template<typename _FIter, typename _Predicate>
|
|
|
|
_FIter
|
|
|
|
partition_point(_FIter, _FIter, _Predicate);
|
2008-06-26 17:55:23 +00:00
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
pop_heap(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
pop_heap(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _BIter>
|
|
|
|
bool
|
|
|
|
prev_permutation(_BIter, _BIter);
|
|
|
|
|
|
|
|
template<typename _BIter, typename _Compare>
|
|
|
|
bool
|
|
|
|
prev_permutation(_BIter, _BIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
push_heap(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
push_heap(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
// random_shuffle
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
_FIter
|
|
|
|
remove(_FIter, _FIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Predicate>
|
|
|
|
_FIter
|
|
|
|
remove_if(_FIter, _FIter, _Predicate);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter, typename _Tp>
|
|
|
|
_OIter
|
|
|
|
remove_copy(_IIter, _IIter, _OIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter, typename _Predicate>
|
|
|
|
_OIter
|
|
|
|
remove_copy_if(_IIter, _IIter, _OIter, _Predicate);
|
|
|
|
|
|
|
|
// replace
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter, typename _Tp>
|
|
|
|
_OIter
|
|
|
|
replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _Iter, typename _OIter, typename _Predicate, typename _Tp>
|
|
|
|
_OIter
|
|
|
|
replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&);
|
|
|
|
|
|
|
|
// replace_if
|
|
|
|
|
|
|
|
template<typename _BIter>
|
|
|
|
void
|
|
|
|
reverse(_BIter, _BIter);
|
|
|
|
|
|
|
|
template<typename _BIter, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
reverse_copy(_BIter, _BIter, _OIter);
|
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
void
|
|
|
|
rotate(_FIter, _FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _OIter>
|
|
|
|
_OIter
|
2007-09-26 17:04:06 +00:00
|
|
|
rotate_copy(_FIter, _FIter, _FIter, _OIter);
|
2007-09-11 22:32:51 +00:00
|
|
|
|
|
|
|
// search
|
|
|
|
// search_n
|
|
|
|
// set_difference
|
|
|
|
// set_intersection
|
|
|
|
// set_symmetric_difference
|
|
|
|
// set_union
|
|
|
|
|
2012-11-10 12:27:22 -05:00
|
|
|
#if (__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
|
2010-03-19 10:36:57 +00:00
|
|
|
template<typename _RAIter, typename _UGenerator>
|
|
|
|
void
|
2010-08-11 17:10:04 +00:00
|
|
|
shuffle(_RAIter, _RAIter, _UGenerator&&);
|
2010-03-19 10:36:57 +00:00
|
|
|
#endif
|
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
sort_heap(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
sort_heap(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _BIter, typename _Predicate>
|
|
|
|
_BIter
|
|
|
|
stable_partition(_BIter, _BIter, _Predicate);
|
|
|
|
|
|
|
|
template<typename _Tp>
|
|
|
|
void
|
2011-05-19 17:20:22 +00:00
|
|
|
swap(_Tp&, _Tp&)
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2011-06-01 14:16:19 +00:00
|
|
|
noexcept(__and_<is_nothrow_move_constructible<_Tp>,
|
|
|
|
is_nothrow_move_assignable<_Tp>>::value)
|
2011-05-19 17:20:22 +00:00
|
|
|
#endif
|
|
|
|
;
|
2007-09-11 22:32:51 +00:00
|
|
|
|
2008-06-22 13:57:06 +00:00
|
|
|
template<typename _Tp, size_t _Nm>
|
|
|
|
void
|
2011-08-28 21:05:48 +00:00
|
|
|
swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm])
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2011-08-28 21:05:48 +00:00
|
|
|
noexcept(noexcept(swap(*__a, *__b)))
|
2011-06-21 23:01:03 +00:00
|
|
|
#endif
|
|
|
|
;
|
2008-06-22 13:57:06 +00:00
|
|
|
|
2007-09-11 22:32:51 +00:00
|
|
|
template<typename _FIter1, typename _FIter2>
|
|
|
|
_FIter2
|
2007-09-26 17:04:06 +00:00
|
|
|
swap_ranges(_FIter1, _FIter1, _FIter2);
|
2007-09-11 22:32:51 +00:00
|
|
|
|
|
|
|
// transform
|
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
_FIter
|
|
|
|
unique(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _BinaryPredicate>
|
|
|
|
_FIter
|
|
|
|
unique(_FIter, _FIter, _BinaryPredicate);
|
|
|
|
|
|
|
|
// unique_copy
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
_FIter
|
|
|
|
upper_bound(_FIter, _FIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp, typename _Compare>
|
|
|
|
_FIter
|
|
|
|
upper_bound(_FIter, _FIter, const _Tp&, _Compare);
|
|
|
|
|
PR libstdc++/36104 part four
2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part four
* include/bits/c++config (_GLIBCXX_STD): Remove.
(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
(_GLIBCXX_P): Now _GLIBCXX_STD_A.
(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
_GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
_GLIBCXX_INLINE_PROFILE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
(_GLIBCXX_END_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
(_GLIBCXX_END_NAMESPACE_ALGO): Add.
(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
(_GLIBCXX_END_NAMESPACE_VERSION): Add.
(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
* include/*: Use new macros for namespace scope.
* config/*: Same.
* src/*: Same.
* src/Makefile.am (sources): Remove debug_list.cc, add
compatibility-debug_list-2.cc.
(parallel_sources): Remove parallel_list.cc, add
compatibility-parallel_list-2.cc.
(compatibility-parallel_list-2.[o,lo]): New rule.
* src/Makefile.in: Regenerate.
* src/debug_list.cc: Remove.
* src/parallel_list.cc: Remove.
* src/compatibility-list-2.cc: New.
* src/compatibility-debug_list-2.cc: New.
* src/compatibility-parallel_list-2.cc: New.
* doc/doxygen/user.cfg.in: Adjust macros.
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
* testsuite/20_util/declval/requirements/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/forward/c_neg.cc: Same.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/forward_list/capacity/1.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Same.
* testsuite/23_containers/list/capacity/29134.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/25_algorithms/sort/35588.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
* testsuite/ext/profile/profiler_algos.cc: Same.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
From-SVN: r169421
2011-01-30 22:39:36 +00:00
|
|
|
_GLIBCXX_END_NAMESPACE_VERSION
|
2007-09-11 22:32:51 +00:00
|
|
|
|
PR libstdc++/36104 part four
2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part four
* include/bits/c++config (_GLIBCXX_STD): Remove.
(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
(_GLIBCXX_P): Now _GLIBCXX_STD_A.
(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
_GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
_GLIBCXX_INLINE_PROFILE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
(_GLIBCXX_END_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
(_GLIBCXX_END_NAMESPACE_ALGO): Add.
(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
(_GLIBCXX_END_NAMESPACE_VERSION): Add.
(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
* include/*: Use new macros for namespace scope.
* config/*: Same.
* src/*: Same.
* src/Makefile.am (sources): Remove debug_list.cc, add
compatibility-debug_list-2.cc.
(parallel_sources): Remove parallel_list.cc, add
compatibility-parallel_list-2.cc.
(compatibility-parallel_list-2.[o,lo]): New rule.
* src/Makefile.in: Regenerate.
* src/debug_list.cc: Remove.
* src/parallel_list.cc: Remove.
* src/compatibility-list-2.cc: New.
* src/compatibility-debug_list-2.cc: New.
* src/compatibility-parallel_list-2.cc: New.
* doc/doxygen/user.cfg.in: Adjust macros.
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
* testsuite/20_util/declval/requirements/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/forward/c_neg.cc: Same.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/forward_list/capacity/1.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Same.
* testsuite/23_containers/list/capacity/29134.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/25_algorithms/sort/35588.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
* testsuite/ext/profile/profiler_algos.cc: Same.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
From-SVN: r169421
2011-01-30 22:39:36 +00:00
|
|
|
_GLIBCXX_BEGIN_NAMESPACE_ALGO
|
2007-09-11 22:32:51 +00:00
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
_FIter
|
|
|
|
adjacent_find(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _BinaryPredicate>
|
|
|
|
_FIter
|
|
|
|
adjacent_find(_FIter, _FIter, _BinaryPredicate);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _Tp>
|
|
|
|
typename iterator_traits<_IIter>::difference_type
|
|
|
|
count(_IIter, _IIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _Predicate>
|
|
|
|
typename iterator_traits<_IIter>::difference_type
|
|
|
|
count_if(_IIter, _IIter, _Predicate);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2>
|
|
|
|
bool
|
|
|
|
equal(_IIter1, _IIter1, _IIter2);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
|
|
|
|
bool
|
|
|
|
equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _Tp>
|
|
|
|
_IIter
|
|
|
|
find(_IIter, _IIter, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2>
|
|
|
|
_FIter1
|
|
|
|
find_first_of(_FIter1, _FIter1, _FIter2, _FIter2);
|
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
|
|
|
|
_FIter1
|
|
|
|
find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _Predicate>
|
2008-06-25 16:39:15 +00:00
|
|
|
_IIter
|
2007-09-11 22:32:51 +00:00
|
|
|
find_if(_IIter, _IIter, _Predicate);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _Funct>
|
|
|
|
_Funct
|
|
|
|
for_each(_IIter, _IIter, _Funct);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Generator>
|
|
|
|
void
|
|
|
|
generate(_FIter, _FIter, _Generator);
|
|
|
|
|
|
|
|
template<typename _OIter, typename _Size, typename _Generator>
|
2007-09-26 17:04:06 +00:00
|
|
|
_OIter
|
2007-09-11 22:32:51 +00:00
|
|
|
generate_n(_OIter, _Size, _Generator);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2>
|
|
|
|
bool
|
|
|
|
lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _Compare>
|
|
|
|
bool
|
|
|
|
lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
|
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
_FIter
|
|
|
|
max_element(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Compare>
|
|
|
|
_FIter
|
|
|
|
max_element(_FIter, _FIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter,
|
|
|
|
typename _Compare>
|
|
|
|
_OIter
|
|
|
|
merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _FIter>
|
|
|
|
_FIter
|
|
|
|
min_element(_FIter, _FIter);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Compare>
|
|
|
|
_FIter
|
|
|
|
min_element(_FIter, _FIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2>
|
|
|
|
pair<_IIter1, _IIter2>
|
|
|
|
mismatch(_IIter1, _IIter1, _IIter2);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
|
|
|
|
pair<_IIter1, _IIter2>
|
|
|
|
mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
nth_element(_RAIter, _RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
nth_element(_RAIter, _RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
partial_sort(_RAIter, _RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _BIter, typename _Predicate>
|
|
|
|
_BIter
|
|
|
|
partition(_BIter, _BIter, _Predicate);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
random_shuffle(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Generator>
|
|
|
|
void
|
2010-03-19 10:36:57 +00:00
|
|
|
random_shuffle(_RAIter, _RAIter,
|
2012-11-10 12:27:22 -05:00
|
|
|
#if __cplusplus >= 201103L
|
2010-03-19 10:36:57 +00:00
|
|
|
_Generator&&);
|
|
|
|
#else
|
|
|
|
_Generator&);
|
|
|
|
#endif
|
2007-09-11 22:32:51 +00:00
|
|
|
|
|
|
|
template<typename _FIter, typename _Tp>
|
|
|
|
void
|
|
|
|
replace(_FIter, _FIter, const _Tp&, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Predicate, typename _Tp>
|
|
|
|
void
|
|
|
|
replace_if(_FIter, _FIter, _Predicate, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2>
|
|
|
|
_FIter1
|
|
|
|
search(_FIter1, _FIter1, _FIter2, _FIter2);
|
|
|
|
|
|
|
|
template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
|
|
|
|
_FIter1
|
|
|
|
search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Size, typename _Tp>
|
|
|
|
_FIter
|
|
|
|
search_n(_FIter, _FIter, _Size, const _Tp&);
|
|
|
|
|
|
|
|
template<typename _FIter, typename _Size, typename _Tp,
|
|
|
|
typename _BinaryPredicate>
|
|
|
|
_FIter
|
|
|
|
search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter,
|
|
|
|
typename _Compare>
|
|
|
|
_OIter
|
|
|
|
set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter,
|
|
|
|
typename _Compare>
|
|
|
|
_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,
|
|
|
|
typename _Compare>
|
|
|
|
_OIter
|
|
|
|
set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2,
|
|
|
|
_OIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter,
|
|
|
|
typename _Compare>
|
|
|
|
_OIter
|
|
|
|
set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
sort(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
sort(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _RAIter>
|
|
|
|
void
|
|
|
|
stable_sort(_RAIter, _RAIter);
|
|
|
|
|
|
|
|
template<typename _RAIter, typename _Compare>
|
|
|
|
void
|
|
|
|
stable_sort(_RAIter, _RAIter, _Compare);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter, typename _UnaryOperation>
|
|
|
|
_OIter
|
|
|
|
transform(_IIter, _IIter, _OIter, _UnaryOperation);
|
|
|
|
|
|
|
|
template<typename _IIter1, typename _IIter2, typename _OIter,
|
|
|
|
typename _BinaryOperation>
|
|
|
|
_OIter
|
|
|
|
transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter>
|
|
|
|
_OIter
|
|
|
|
unique_copy(_IIter, _IIter, _OIter);
|
|
|
|
|
|
|
|
template<typename _IIter, typename _OIter, typename _BinaryPredicate>
|
|
|
|
_OIter
|
|
|
|
unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate);
|
|
|
|
|
PR libstdc++/36104 part four
2011-01-30 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/36104 part four
* include/bits/c++config (_GLIBCXX_STD): Remove.
(_GLIBCXX_STD_D, _GLIBCXX_PR): Now _GLIBCXX_STD_C.
(_GLIBCXX_P): Now _GLIBCXX_STD_A.
(_GLIBCXX_NAMESPACE_DEBUG, _GLIBCXX_NAMESPACE_PARALLEL,
_GLIBCXX_NAMESPACE_PROFILE, _GLIBCXX_NAMESPACE_VERSION): Remove.
(_GLIBCXX_INLINE_DEBUG, _GLIBCXX_INLINE_PARALLEL,
_GLIBCXX_INLINE_PROFILE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE(X)): Remove.
(_GLIBCXX_END_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y)): Remove.
(_GLIBCXX_END_NESTED_NAMESPACE): Remove.
(_GLIBCXX_BEGIN_NAMESPACE_ALGO): Add.
(_GLIBCXX_END_NAMESPACE_ALGO): Add.
(_GLIBCXX_BEGIN_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_END_NAMESPACE_CONTAINER): Add.
(_GLIBCXX_BEGIN_NAMESPACE_VERSION): Add.
(_GLIBCXX_END_NAMESPACE_VERSION): Add.
(_GLIBCXX_BEGIN_LDBL_NAMESPACE): To _GLIBCXX_BEGIN_NAMESPACE_LDBL.
(_GLIBCXX_END_LDBL_NAMESPACE): To _GLIBCXX_END_NAMESPACE_LDBL.
(_GLIBCXX_VISIBILITY_ATTR): Revert to _GLIBCXX_VISIBILITY.
* include/*: Use new macros for namespace scope.
* config/*: Same.
* src/*: Same.
* src/Makefile.am (sources): Remove debug_list.cc, add
compatibility-debug_list-2.cc.
(parallel_sources): Remove parallel_list.cc, add
compatibility-parallel_list-2.cc.
(compatibility-parallel_list-2.[o,lo]): New rule.
* src/Makefile.in: Regenerate.
* src/debug_list.cc: Remove.
* src/parallel_list.cc: Remove.
* src/compatibility-list-2.cc: New.
* src/compatibility-debug_list-2.cc: New.
* src/compatibility-parallel_list-2.cc: New.
* doc/doxygen/user.cfg.in: Adjust macros.
* testsuite/20_util/auto_ptr/assign_neg.cc: Adjust line numbers, macros.
* testsuite/20_util/declval/requirements/1_neg.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg1.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg2.cc: Same.
* testsuite/20_util/duration/requirements/typedefs_neg3.cc: Same.
* testsuite/20_util/forward/c_neg.cc: Same.
* testsuite/20_util/forward/f_neg.cc: Same.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Same.
* testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Same.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Same.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/forward_list/capacity/1.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
assign_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/forward_list/requirements/dr438/
insert_neg.cc: Same.
* testsuite/23_containers/list/capacity/29134.cc: Same.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Same.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Same.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Same.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Same.
* testsuite/25_algorithms/sort/35588.cc: Same.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Same.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Same.
* testsuite/ext/profile/mutex_extensions_neg.cc: Same.
* testsuite/ext/profile/profiler_algos.cc: Same.
* testsuite/ext/type_traits/add_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/add_unsigned_integer_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_floating_neg.cc: Same.
* testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Same.
* testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc: Same.
From-SVN: r169421
2011-01-30 22:39:36 +00:00
|
|
|
_GLIBCXX_END_NAMESPACE_ALGO
|
|
|
|
} // namespace std
|
2007-09-11 22:32:51 +00:00
|
|
|
|
2011-01-15 00:27:10 +00:00
|
|
|
#ifdef _GLIBCXX_PARALLEL
|
2007-09-11 22:32:51 +00:00
|
|
|
# include <parallel/algorithmfwd.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|