summaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxx/include/iterator
diff options
context:
space:
mode:
authorAndrey Khalyavin <[email protected]>2022-06-24 01:36:20 +0300
committerAndrey Khalyavin <[email protected]>2022-06-24 01:36:20 +0300
commit744d10b39ed56155025137ac4a38e11e72ae7d4a (patch)
tree07bcc252ab4cd4b4c92aa5e7e1c90215e11db7c7 /contrib/libs/cxxsupp/libcxx/include/iterator
parentfd274bd81aff99a065469b0c1a0f581b1d401c79 (diff)
Update libc++ to 8f0b2ac1 (12 Feb 2022).
Notable changes: * use [[no_unique_address]] for field `__base_` in join_view * remove _LIBCPP_HIDE_FROM_ABI from __threading_support functions * remove __functional_base header which is just a set of #include directives * remove unused include in ranges_swap_ranges.h * do not print bools with "c" format. * add noexcept to basic_format_context::arg constructor * add ranges::min_element * add ranges::in_fun_result * add ranges::swap_ranges * add std::vector::reference::operator=(bool) const * replace _LIBCPP_DEBUG with _LIBCPP_DEBUG_LEVEL * fix constexpr in __debug_less * modernize code in compress_pair.h * add permutable concept * cleanup format headers * remove _LIBCPP_ABI_UNSTABLE, we must set _LIBCPP_ABI_VERSION and _LIBCPP_ABI_NAMESPACE outselves now * make some members private in experimental/functional * remove std::nullptr_t emulation in C++03 mode ref:f3c7583f32067a3dd9da42aeb15f1b01d746dc59
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx/include/iterator')
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/iterator25
1 files changed, 22 insertions, 3 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/include/iterator b/contrib/libs/cxxsupp/libcxx/include/iterator
index 1786c4b8d41..202667809dc 100644
--- a/contrib/libs/cxxsupp/libcxx/include/iterator
+++ b/contrib/libs/cxxsupp/libcxx/include/iterator
@@ -147,6 +147,10 @@ template<class In, class Out>
template<class I1, class I2 = I1>
concept indirectly_swappable = see below; // since C++20
+// [alg.req.permutable], concept permutable // since C++20
+template<class I>
+ concept permutable = see below;
+
template<class I1, class I2, class R, class P1 = identity,
class P2 = identity>
concept indirectly_comparable =
@@ -340,8 +344,10 @@ public:
insert_iterator& operator++(int); // constexpr in C++20
};
-template <class Container, class Iterator>
-insert_iterator<Container> inserter(Container& x, Iterator i); // constexpr in C++20
+template <class Container>
+insert_iterator<Container> inserter(Container& x, typename Container::iterator i); // until C++20
+template <class Container>
+constexpr insert_iterator<Container> inserter(Container& x, ranges::iterator_t<Container> i); // since C++20
template <class Iterator>
class move_iterator {
@@ -592,7 +598,6 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <__config>
#include <__debug>
-#include <__functional_base>
#include <__iterator/access.h>
#include <__iterator/advance.h>
#include <__iterator/back_insert_iterator.h>
@@ -618,6 +623,7 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <__iterator/next.h>
#include <__iterator/ostream_iterator.h>
#include <__iterator/ostreambuf_iterator.h>
+#include <__iterator/permutable.h>
#include <__iterator/prev.h>
#include <__iterator/projected.h>
#include <__iterator/readable_traits.h>
@@ -636,6 +642,19 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <utility>
#include <version>
+// TODO: remove these headers
+#include <__functional/binary_function.h>
+#include <__functional/invoke.h>
+#include <__functional/operations.h>
+#include <__functional/reference_wrapper.h>
+#include <__functional/unary_function.h>
+#include <__functional/weak_result_type.h>
+#include <__memory/allocator_arg_t.h>
+#include <__memory/uses_allocator.h>
+#include <exception>
+#include <new>
+#include <typeinfo>
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif