diff options
author | Andrey Khalyavin <[email protected]> | 2022-06-24 01:36:20 +0300 |
---|---|---|
committer | Andrey Khalyavin <[email protected]> | 2022-06-24 01:36:20 +0300 |
commit | 744d10b39ed56155025137ac4a38e11e72ae7d4a (patch) | |
tree | 07bcc252ab4cd4b4c92aa5e7e1c90215e11db7c7 /contrib/libs/cxxsupp/libcxx/include/iterator | |
parent | fd274bd81aff99a065469b0c1a0f581b1d401c79 (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/iterator | 25 |
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 |