aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/cxxsupp/libcxx
diff options
context:
space:
mode:
authorhalyavin <halyavin@yandex-team.com>2022-07-21 11:17:19 +0300
committerhalyavin <halyavin@yandex-team.com>2022-07-21 11:17:19 +0300
commitb78ae8ac7797d88986dfa1526ea11fcbdb4f5f6f (patch)
treef4368f9265036a664df40ae4943cabd4f272d414 /contrib/libs/cxxsupp/libcxx
parentb651f08845dea01bbd05b6b7d56aba3992374706 (diff)
downloadydb-b78ae8ac7797d88986dfa1526ea11fcbdb4f5f6f.tar.gz
Update libc++ to 34313583 (20 Feb 2022).
Notable changes: * replace _LIBCPP_INLINE_VISIBILITY with _LIBCPP_HIDE_FROM_ABI in __filesystem/operations.h * implement sortable and mergeable concepts * replace __uncvref with __uncvref_t * implement consistent stateful allocator behavior in std::basic_string::operator+ * remove some _LIBCPP_CXX03_LANG ifdef's * move _LIBCPP_ASSERT related code to a separate file * enable std::hash<Enum> in C++11 mode * make algorithm includes more granular * implement range functionality for std::istream_iterator * add debug check in basic_string::insert * replace "" with <> in includes in src/ files for consistency with include/ * add push/pop macros defines in src/ files for consistency with include/ * add availability annotations to optional operations * remove conditional noexcept from view_interface --- this is allowed by the standard * replace _LIBCPP_SAFE_STATIC with _LIBCPP_CONSTINIT * guard most of std::ranges under _LIBCPP_HAS_NO_INCOMPLETE_RANGES * remove priority pragma for AIX from locale.cpp because it is ignored anyway
Diffstat (limited to 'contrib/libs/cxxsupp/libcxx')
-rw-r--r--contrib/libs/cxxsupp/libcxx/CMakeLists.txt1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__algorithm/clamp.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__algorithm/comp_ref_type.h1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_out_result.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_result.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_min_element.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__algorithm/sample.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__assert69
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__bit_reference6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__config8
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__debug68
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__filesystem/directory_iterator.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__filesystem/operations.h192
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__filesystem/path.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__filesystem/path_iterator.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__filesystem/recursive_directory_iterator.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/format_arg.h1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/format_string.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/formatter.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/formatter_floating_point.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/formatter_integral.h1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/formatter_pointer.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/formatter_string.h1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__format/parser_std_format_spec.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__functional/bind.h8
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__functional/function.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__functional/hash.h5
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__functional/ranges_operations.h5
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__hash_table7
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/advance.h6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/common_iterator.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/counted_iterator.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/default_sentinel.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/distance.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/insert_iterator.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/istream_iterator.h12
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/istreambuf_iterator.h13
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/iter_move.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/iter_swap.h1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/mergeable.h41
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/next.h6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/prev.h6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_access.h6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__iterator/sortable.h37
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/allocator_arg_t.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/concepts.h6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/construct_at.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/ranges_construct_at.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/ranges_uninitialized_algorithms.h6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__memory/unique_ptr.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__node_handle2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__numeric/gcd_lcm.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/concepts.h12
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/dangling.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/data.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/enable_borrowed_range.h3
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/enable_view.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__ranges/size.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__split_buffer10
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__string4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__tree4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/__tuple5
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/array7
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/atomic19
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/bit2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/bitset2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/charconv1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/deque12
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/format1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/forward_list4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/fstream3
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/future38
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/iterator35
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/list6
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/locale7
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/map4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/optional16
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/queue4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/random1
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/regex3
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/set4
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/span20
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/string41
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/string_view12
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/thread8
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/tuple9
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/type_traits18
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/unordered_map2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/unordered_set2
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/valarray8
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/vector11
-rw-r--r--contrib/libs/cxxsupp/libcxx/include/version2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/algorithm.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/any.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/assert.cpp38
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/bind.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/charconv.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/chrono.cpp6
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/condition_variable.cpp16
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/condition_variable_destructor.cpp4
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/debug.cpp45
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/exception.cpp6
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/filesystem/directory_iterator.cpp7
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/filesystem/filesystem_common.h19
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp19
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/filesystem/posix_compat.h3
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/format.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/functional.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/future.cpp6
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/hash.cpp8
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/atomic_support.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/common.h1
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed.h4
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed_full_table.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_full_table.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_intrinsics.h3
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/digit_table.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/f2s.h2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/ryu/ryu.h17
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/include/to_chars_floating_point.h22
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/ios.cpp24
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/ios.instantiations.cpp15
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/iostream.cpp8
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/locale.cpp35
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/memory.cpp21
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/mutex.cpp25
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp10
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/new.cpp3
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/optional.cpp4
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/random.cpp6
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/random_shuffle.cpp15
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/regex.cpp6
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/ryu/d2fixed.cpp9
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/ryu/d2s.cpp5
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/ryu/f2s.cpp5
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/shared_mutex.cpp7
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/stdexcept.cpp9
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/string.cpp16
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/strstream.cpp18
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/runtime/exception_fallback.ipp6
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/support/runtime/new_handler_fallback.ipp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/system_error.cpp19
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/thread.cpp13
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/typeinfo.cpp3
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/utility.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/valarray.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/variant.cpp2
-rw-r--r--contrib/libs/cxxsupp/libcxx/src/vector.cpp2
150 files changed, 844 insertions, 633 deletions
diff --git a/contrib/libs/cxxsupp/libcxx/CMakeLists.txt b/contrib/libs/cxxsupp/libcxx/CMakeLists.txt
index a9837f9b19b..a885e188cfa 100644
--- a/contrib/libs/cxxsupp/libcxx/CMakeLists.txt
+++ b/contrib/libs/cxxsupp/libcxx/CMakeLists.txt
@@ -32,6 +32,7 @@ target_link_libraries(libs-cxxsupp-libcxx PUBLIC
target_sources(libs-cxxsupp-libcxx PRIVATE
${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp
${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/any.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/assert.cpp
${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/atomic.cpp
${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/barrier.cpp
${CMAKE_SOURCE_DIR}/contrib/libs/cxxsupp/libcxx/src/bind.cpp
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/clamp.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/clamp.h
index bfc96f81c33..b3762b85a0b 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__algorithm/clamp.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/clamp.h
@@ -10,8 +10,8 @@
#define _LIBCPP___ALGORITHM_CLAMP_H
#include <__algorithm/comp.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/comp_ref_type.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/comp_ref_type.h
index 40526f6efda..e450a670f71 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__algorithm/comp_ref_type.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/comp_ref_type.h
@@ -9,6 +9,7 @@
#ifndef _LIBCPP___ALGORITHM_COMP_REF_TYPE_H
#define _LIBCPP___ALGORITHM_COMP_REF_TYPE_H
+#include <__assert>
#include <__config>
#include <__debug>
#include <__utility/declval.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_out_result.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_out_result.h
index 3a163d1a75b..f7cb698472f 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_out_result.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_in_out_result.h
@@ -20,7 +20,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
namespace ranges {
@@ -47,7 +47,7 @@ struct in_in_out_result {
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_result.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_result.h
index 124b4d6ffb6..fd394a36211 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_result.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/in_out_result.h
@@ -20,7 +20,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
namespace ranges {
@@ -47,7 +47,7 @@ struct in_out_result {
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_min_element.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_min_element.h
index 2af503dabf4..82aaeea1c84 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_min_element.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/ranges_min_element.h
@@ -24,7 +24,7 @@
# pragma GCC system_header
#endif
-#ifndef _LIBCPP_HAS_NO_CONCEPTS
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_BEGIN_NAMESPACE_STD
@@ -67,6 +67,6 @@ inline namespace __cpo {
_LIBCPP_END_NAMESPACE_STD
-#endif // _LIBCPP_HAS_NO_RANGES
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
#endif // _LIBCPP___ALGORITHM_RANGES_MIN_ELEMENT_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__algorithm/sample.h b/contrib/libs/cxxsupp/libcxx/include/__algorithm/sample.h
index 0bf4fd5b972..52349610821 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__algorithm/sample.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__algorithm/sample.h
@@ -10,8 +10,8 @@
#define _LIBCPP___ALGORITHM_SAMPLE_H
#include <__algorithm/min.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__random/uniform_int_distribution.h>
#include <iterator>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__assert b/contrib/libs/cxxsupp/libcxx/include/__assert
new file mode 100644
index 00000000000..d51512dcf37
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxx/include/__assert
@@ -0,0 +1,69 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP___ASSERT
+#define _LIBCPP___ASSERT
+
+#include <__config>
+#include <iosfwd> // for std::string
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+# pragma GCC system_header
+#endif
+
+#if _LIBCPP_DEBUG_LEVEL >= 1
+# define _LIBCPP_ASSERT_IMPL(x, m) ((x) ? (void)0 : ::std::__libcpp_debug_function(::std::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))
+#else
+# define _LIBCPP_ASSERT_IMPL(x, m) ((void)0)
+#endif
+
+// We do this dance because some of our tests re-define _LIBCPP_ASSERT to something else.
+// In the future, we should find other ways to test our assertions and disallow re-defining
+// _LIBCPP_ASSERT.
+#if !defined(_LIBCPP_ASSERT)
+# define _LIBCPP_ASSERT(x, m) _LIBCPP_ASSERT_IMPL(x, m)
+#endif
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+struct _LIBCPP_TEMPLATE_VIS __libcpp_debug_info {
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
+ __libcpp_debug_info()
+ : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {}
+ _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
+ __libcpp_debug_info(const char* __f, int __l, const char* __p, const char* __m)
+ : __file_(__f), __line_(__l), __pred_(__p), __msg_(__m) {}
+
+ _LIBCPP_FUNC_VIS string what() const;
+
+ const char* __file_;
+ int __line_;
+ const char* __pred_;
+ const char* __msg_;
+};
+
+/// __libcpp_debug_function_type - The type of the assertion failure handler.
+typedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&);
+
+/// __libcpp_debug_function - The handler function called when a _LIBCPP_ASSERT
+/// fails.
+extern _LIBCPP_EXPORTED_FROM_ABI __libcpp_debug_function_type __libcpp_debug_function;
+
+/// __libcpp_abort_debug_function - A debug handler that aborts when called.
+_LIBCPP_NORETURN _LIBCPP_FUNC_VIS
+void __libcpp_abort_debug_function(__libcpp_debug_info const&);
+
+/// __libcpp_set_debug_function - Set the debug handler to the specified
+/// function.
+_LIBCPP_FUNC_VIS
+bool __libcpp_set_debug_function(__libcpp_debug_function_type __func);
+
+_LIBCPP_END_NAMESPACE_STD
+
+#endif // _LIBCPP___ASSERT
diff --git a/contrib/libs/cxxsupp/libcxx/include/__bit_reference b/contrib/libs/cxxsupp/libcxx/include/__bit_reference
index 23e7ad9bb0a..60e77868c28 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__bit_reference
+++ b/contrib/libs/cxxsupp/libcxx/include/__bit_reference
@@ -10,9 +10,13 @@
#ifndef _LIBCPP___BIT_REFERENCE
#define _LIBCPP___BIT_REFERENCE
+#include <__algorithm/min.h>
#include <__bits>
#include <__config>
-#include <algorithm>
+#include <__iterator/iterator_traits.h>
+#include <__memory/pointer_traits.h>
+#include <cstring>
+#include <type_traits>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
diff --git a/contrib/libs/cxxsupp/libcxx/include/__config b/contrib/libs/cxxsupp/libcxx/include/__config
index cf196ccb27e..1984c01ed73 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__config
+++ b/contrib/libs/cxxsupp/libcxx/include/__config
@@ -1292,10 +1292,12 @@ extern "C" _LIBCPP_FUNC_VIS void __sanitizer_annotate_contiguous_container(
# define _LIBCPP_THREAD_SAFETY_ANNOTATION(x)
#endif
-#if __has_attribute(require_constant_initialization)
-# define _LIBCPP_SAFE_STATIC __attribute__((__require_constant_initialization__))
+#if _LIBCPP_STD_VER > 17 && (!defined(_MSC_VER) || _MSC_VER >= 1929)
+# define _LIBCPP_CONSTINIT constinit
+#elif __has_attribute(require_constant_initialization)
+# define _LIBCPP_CONSTINIT __attribute__((__require_constant_initialization__))
#else
-# define _LIBCPP_SAFE_STATIC
+# define _LIBCPP_CONSTINIT
#endif
#if !__has_builtin(__builtin_is_constant_evaluated) || (defined(_LIBCPP_COMPILER_GCC) && _GNUC_VER < 900) || __CUDACC_VER_MAJOR__ == 10
diff --git a/contrib/libs/cxxsupp/libcxx/include/__debug b/contrib/libs/cxxsupp/libcxx/include/__debug
index 5d0b5bf57f4..b7677a22c85 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__debug
+++ b/contrib/libs/cxxsupp/libcxx/include/__debug
@@ -10,6 +10,7 @@
#ifndef _LIBCPP_DEBUG_H
#define _LIBCPP_DEBUG_H
+#include <__assert>
#include <__config>
#include <iosfwd>
#include <type_traits>
@@ -24,57 +25,16 @@
# include <cstdlib>
#endif
-#if _LIBCPP_DEBUG_LEVEL == 0
+#if _LIBCPP_DEBUG_LEVEL == 0 || _LIBCPP_DEBUG_LEVEL == 1
# define _LIBCPP_DEBUG_ASSERT(x, m) ((void)0)
-# define _LIBCPP_ASSERT_IMPL(x, m) ((void)0)
-#elif _LIBCPP_DEBUG_LEVEL == 1
-# define _LIBCPP_DEBUG_ASSERT(x, m) ((void)0)
-# define _LIBCPP_ASSERT_IMPL(x, m) ((x) ? (void)0 : ::std::__libcpp_debug_function(::std::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))
#elif _LIBCPP_DEBUG_LEVEL == 2
# define _LIBCPP_DEBUG_ASSERT(x, m) _LIBCPP_ASSERT(::std::__libcpp_is_constant_evaluated() || (x), m)
-# define _LIBCPP_ASSERT_IMPL(x, m) ((x) ? (void)0 : ::std::__libcpp_debug_function(::std::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))
#else
# error _LIBCPP_DEBUG_LEVEL must be one of 0, 1, 2
#endif
-#if !defined(_LIBCPP_ASSERT)
-# define _LIBCPP_ASSERT(x, m) _LIBCPP_ASSERT_IMPL(x, m)
-#endif
-
_LIBCPP_BEGIN_NAMESPACE_STD
-struct _LIBCPP_TEMPLATE_VIS __libcpp_debug_info {
- _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
- __libcpp_debug_info()
- : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {}
- _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR
- __libcpp_debug_info(const char* __f, int __l, const char* __p, const char* __m)
- : __file_(__f), __line_(__l), __pred_(__p), __msg_(__m) {}
-
- _LIBCPP_FUNC_VIS string what() const;
-
- const char* __file_;
- int __line_;
- const char* __pred_;
- const char* __msg_;
-};
-
-/// __libcpp_debug_function_type - The type of the assertion failure handler.
-typedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&);
-
-/// __libcpp_debug_function - The handler function called when a _LIBCPP_ASSERT
-/// fails.
-extern _LIBCPP_EXPORTED_FROM_ABI __libcpp_debug_function_type __libcpp_debug_function;
-
-/// __libcpp_abort_debug_function - A debug handler that aborts when called.
-_LIBCPP_NORETURN _LIBCPP_FUNC_VIS
-void __libcpp_abort_debug_function(__libcpp_debug_info const&);
-
-/// __libcpp_set_debug_function - Set the debug handler to the specified
-/// function.
-_LIBCPP_FUNC_VIS
-bool __libcpp_set_debug_function(__libcpp_debug_function_type __func);
-
#if _LIBCPP_DEBUG_LEVEL == 2 || defined(_LIBCPP_BUILDING_LIBRARY)
struct _LIBCPP_TYPE_VIS __c_node;
@@ -85,15 +45,9 @@ struct _LIBCPP_TYPE_VIS __i_node
__i_node* __next_;
__c_node* __c_;
-#ifndef _LIBCPP_CXX03_LANG
__i_node(const __i_node&) = delete;
__i_node& operator=(const __i_node&) = delete;
-#else
-private:
- __i_node(const __i_node&);
- __i_node& operator=(const __i_node&);
-public:
-#endif
+
_LIBCPP_INLINE_VISIBILITY
__i_node(void* __i, __i_node* __next, __c_node* __c)
: __i_(__i), __next_(__next), __c_(__c) {}
@@ -108,15 +62,9 @@ struct _LIBCPP_TYPE_VIS __c_node
__i_node** end_;
__i_node** cap_;
-#ifndef _LIBCPP_CXX03_LANG
__c_node(const __c_node&) = delete;
__c_node& operator=(const __c_node&) = delete;
-#else
-private:
- __c_node(const __c_node&);
- __c_node& operator=(const __c_node&);
-public:
-#endif
+
_LIBCPP_INLINE_VISIBILITY
__c_node(void* __c, __c_node* __next)
: __c_(__c), __next_(__next), beg_(nullptr), end_(nullptr), cap_(nullptr) {}
@@ -195,15 +143,9 @@ class _LIBCPP_TYPE_VIS __libcpp_db
__libcpp_db();
public:
-#ifndef _LIBCPP_CXX03_LANG
__libcpp_db(const __libcpp_db&) = delete;
__libcpp_db& operator=(const __libcpp_db&) = delete;
-#else
-private:
- __libcpp_db(const __libcpp_db&);
- __libcpp_db& operator=(const __libcpp_db&);
-public:
-#endif
+
~__libcpp_db();
class __db_c_iterator;
diff --git a/contrib/libs/cxxsupp/libcxx/include/__filesystem/directory_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__filesystem/directory_iterator.h
index d79b4c1910b..87bbbfac717 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__filesystem/directory_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__filesystem/directory_iterator.h
@@ -10,9 +10,9 @@
#ifndef _LIBCPP___FILESYSTEM_DIRECTORY_ITERATOR_H
#define _LIBCPP___FILESYSTEM_DIRECTORY_ITERATOR_H
+#include <__assert>
#include <__availability>
#include <__config>
-#include <__debug>
#include <__filesystem/directory_entry.h>
#include <__filesystem/directory_options.h>
#include <__filesystem/path.h>
@@ -147,7 +147,7 @@ template <>
_LIBCPP_AVAILABILITY_FILESYSTEM
inline constexpr bool _VSTD::ranges::enable_view<_VSTD_FS::directory_iterator> = true;
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
#endif // _LIBCPP_CXX03_LANG
diff --git a/contrib/libs/cxxsupp/libcxx/include/__filesystem/operations.h b/contrib/libs/cxxsupp/libcxx/include/__filesystem/operations.h
index f1dfacdf5da..894c501d4ac 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__filesystem/operations.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__filesystem/operations.h
@@ -62,41 +62,41 @@ _LIBCPP_FUNC_VIS void __rename(const path& from, const path& to, error_code* ec
_LIBCPP_FUNC_VIS void __resize_file(const path& p, uintmax_t size, error_code* ec = nullptr);
_LIBCPP_FUNC_VIS path __temp_directory_path(error_code* __ec = nullptr);
-inline _LIBCPP_INLINE_VISIBILITY path absolute(const path& __p) { return __absolute(__p); }
-inline _LIBCPP_INLINE_VISIBILITY path absolute(const path& __p, error_code& __ec) { return __absolute(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY path canonical(const path& __p) { return __canonical(__p); }
-inline _LIBCPP_INLINE_VISIBILITY path canonical(const path& __p, error_code& __ec) { return __canonical(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool copy_file(const path& __from, const path& __to) { return __copy_file(__from, __to, copy_options::none); }
-inline _LIBCPP_INLINE_VISIBILITY bool copy_file(const path& __from, const path& __to, error_code& __ec) { return __copy_file(__from, __to, copy_options::none, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool copy_file(const path& __from, const path& __to, copy_options __opt) { return __copy_file(__from, __to, __opt); }
-inline _LIBCPP_INLINE_VISIBILITY bool copy_file(const path& __from, const path& __to, copy_options __opt, error_code& __ec) { return __copy_file(__from, __to, __opt, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void copy_symlink(const path& __from, const path& __to) { __copy_symlink(__from, __to); }
-inline _LIBCPP_INLINE_VISIBILITY void copy_symlink(const path& __from, const path& __to, error_code& __ec) noexcept { __copy_symlink(__from, __to, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void copy(const path& __from, const path& __to) { __copy(__from, __to, copy_options::none); }
-inline _LIBCPP_INLINE_VISIBILITY void copy(const path& __from, const path& __to, error_code& __ec) { __copy(__from, __to, copy_options::none, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void copy(const path& __from, const path& __to, copy_options __opt) { __copy(__from, __to, __opt); }
-inline _LIBCPP_INLINE_VISIBILITY void copy(const path& __from, const path& __to, copy_options __opt, error_code& __ec) { __copy(__from, __to, __opt, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool create_directories(const path& __p) { return __create_directories(__p); }
-inline _LIBCPP_INLINE_VISIBILITY bool create_directories(const path& __p, error_code& __ec) { return __create_directories(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void create_directory_symlink(const path& __target, const path& __link) { __create_directory_symlink(__target, __link); }
-inline _LIBCPP_INLINE_VISIBILITY void create_directory_symlink(const path& __target, const path& __link, error_code& __ec) noexcept { __create_directory_symlink(__target, __link, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool create_directory(const path& __p) { return __create_directory(__p); }
-inline _LIBCPP_INLINE_VISIBILITY bool create_directory(const path& __p, error_code& __ec) noexcept { return __create_directory(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool create_directory(const path& __p, const path& __attrs) { return __create_directory(__p, __attrs); }
-inline _LIBCPP_INLINE_VISIBILITY bool create_directory(const path& __p, const path& __attrs, error_code& __ec) noexcept { return __create_directory(__p, __attrs, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void create_hard_link(const path& __target, const path& __link) { __create_hard_link(__target, __link); }
-inline _LIBCPP_INLINE_VISIBILITY void create_hard_link(const path& __target, const path& __link, error_code& __ec) noexcept { __create_hard_link(__target, __link, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void create_symlink(const path& __target, const path& __link) { __create_symlink(__target, __link); }
-inline _LIBCPP_INLINE_VISIBILITY void create_symlink(const path& __target, const path& __link, error_code& __ec) noexcept { return __create_symlink(__target, __link, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY path current_path() { return __current_path(); }
-inline _LIBCPP_INLINE_VISIBILITY path current_path(error_code& __ec) { return __current_path(&__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void current_path(const path& __p) { __current_path(__p); }
-inline _LIBCPP_INLINE_VISIBILITY void current_path(const path& __p, error_code& __ec) noexcept { __current_path(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool equivalent(const path& __p1, const path& __p2) { return __equivalent(__p1, __p2); }
-inline _LIBCPP_INLINE_VISIBILITY bool equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept { return __equivalent(__p1, __p2, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool status_known(file_status __s) noexcept { return __s.type() != file_type::none; }
-inline _LIBCPP_INLINE_VISIBILITY bool exists(file_status __s) noexcept { return status_known(__s) && __s.type() != file_type::not_found; }
-inline _LIBCPP_INLINE_VISIBILITY bool exists(const path& __p) { return exists(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI path absolute(const path& __p) { return __absolute(__p); }
+inline _LIBCPP_HIDE_FROM_ABI path absolute(const path& __p, error_code& __ec) { return __absolute(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI path canonical(const path& __p) { return __canonical(__p); }
+inline _LIBCPP_HIDE_FROM_ABI path canonical(const path& __p, error_code& __ec) { return __canonical(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool copy_file(const path& __from, const path& __to) { return __copy_file(__from, __to, copy_options::none); }
+inline _LIBCPP_HIDE_FROM_ABI bool copy_file(const path& __from, const path& __to, error_code& __ec) { return __copy_file(__from, __to, copy_options::none, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool copy_file(const path& __from, const path& __to, copy_options __opt) { return __copy_file(__from, __to, __opt); }
+inline _LIBCPP_HIDE_FROM_ABI bool copy_file(const path& __from, const path& __to, copy_options __opt, error_code& __ec) { return __copy_file(__from, __to, __opt, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void copy_symlink(const path& __from, const path& __to) { __copy_symlink(__from, __to); }
+inline _LIBCPP_HIDE_FROM_ABI void copy_symlink(const path& __from, const path& __to, error_code& __ec) noexcept { __copy_symlink(__from, __to, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void copy(const path& __from, const path& __to) { __copy(__from, __to, copy_options::none); }
+inline _LIBCPP_HIDE_FROM_ABI void copy(const path& __from, const path& __to, error_code& __ec) { __copy(__from, __to, copy_options::none, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void copy(const path& __from, const path& __to, copy_options __opt) { __copy(__from, __to, __opt); }
+inline _LIBCPP_HIDE_FROM_ABI void copy(const path& __from, const path& __to, copy_options __opt, error_code& __ec) { __copy(__from, __to, __opt, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool create_directories(const path& __p) { return __create_directories(__p); }
+inline _LIBCPP_HIDE_FROM_ABI bool create_directories(const path& __p, error_code& __ec) { return __create_directories(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void create_directory_symlink(const path& __target, const path& __link) { __create_directory_symlink(__target, __link); }
+inline _LIBCPP_HIDE_FROM_ABI void create_directory_symlink(const path& __target, const path& __link, error_code& __ec) noexcept { __create_directory_symlink(__target, __link, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool create_directory(const path& __p) { return __create_directory(__p); }
+inline _LIBCPP_HIDE_FROM_ABI bool create_directory(const path& __p, error_code& __ec) noexcept { return __create_directory(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool create_directory(const path& __p, const path& __attrs) { return __create_directory(__p, __attrs); }
+inline _LIBCPP_HIDE_FROM_ABI bool create_directory(const path& __p, const path& __attrs, error_code& __ec) noexcept { return __create_directory(__p, __attrs, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void create_hard_link(const path& __target, const path& __link) { __create_hard_link(__target, __link); }
+inline _LIBCPP_HIDE_FROM_ABI void create_hard_link(const path& __target, const path& __link, error_code& __ec) noexcept { __create_hard_link(__target, __link, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void create_symlink(const path& __target, const path& __link) { __create_symlink(__target, __link); }
+inline _LIBCPP_HIDE_FROM_ABI void create_symlink(const path& __target, const path& __link, error_code& __ec) noexcept { return __create_symlink(__target, __link, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI path current_path() { return __current_path(); }
+inline _LIBCPP_HIDE_FROM_ABI path current_path(error_code& __ec) { return __current_path(&__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void current_path(const path& __p) { __current_path(__p); }
+inline _LIBCPP_HIDE_FROM_ABI void current_path(const path& __p, error_code& __ec) noexcept { __current_path(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool equivalent(const path& __p1, const path& __p2) { return __equivalent(__p1, __p2); }
+inline _LIBCPP_HIDE_FROM_ABI bool equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept { return __equivalent(__p1, __p2, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool status_known(file_status __s) noexcept { return __s.type() != file_type::none; }
+inline _LIBCPP_HIDE_FROM_ABI bool exists(file_status __s) noexcept { return status_known(__s) && __s.type() != file_type::not_found; }
+inline _LIBCPP_HIDE_FROM_ABI bool exists(const path& __p) { return exists(__status(__p)); }
inline _LIBCPP_INLINE_VISIBILITY bool exists(const path& __p, error_code& __ec) noexcept {
auto __s = __status(__p, &__ec);
@@ -105,45 +105,45 @@ inline _LIBCPP_INLINE_VISIBILITY bool exists(const path& __p, error_code& __ec)
return exists(__s);
}
-inline _LIBCPP_INLINE_VISIBILITY uintmax_t file_size(const path& __p) { return __file_size(__p); }
-inline _LIBCPP_INLINE_VISIBILITY uintmax_t file_size(const path& __p, error_code& __ec) noexcept { return __file_size(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY uintmax_t hard_link_count(const path& __p) { return __hard_link_count(__p); }
-inline _LIBCPP_INLINE_VISIBILITY uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept { return __hard_link_count(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_block_file(file_status __s) noexcept { return __s.type() == file_type::block; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_block_file(const path& __p) { return is_block_file(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_block_file(const path& __p, error_code& __ec) noexcept { return is_block_file(__status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_character_file(file_status __s) noexcept { return __s.type() == file_type::character; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_character_file(const path& __p) { return is_character_file(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_character_file(const path& __p, error_code& __ec) noexcept { return is_character_file(__status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_directory(file_status __s) noexcept { return __s.type() == file_type::directory; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_directory(const path& __p) { return is_directory(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_directory(const path& __p, error_code& __ec) noexcept { return is_directory(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI uintmax_t file_size(const path& __p) { return __file_size(__p); }
+inline _LIBCPP_HIDE_FROM_ABI uintmax_t file_size(const path& __p, error_code& __ec) noexcept { return __file_size(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI uintmax_t hard_link_count(const path& __p) { return __hard_link_count(__p); }
+inline _LIBCPP_HIDE_FROM_ABI uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept { return __hard_link_count(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_block_file(file_status __s) noexcept { return __s.type() == file_type::block; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_block_file(const path& __p) { return is_block_file(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_block_file(const path& __p, error_code& __ec) noexcept { return is_block_file(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_character_file(file_status __s) noexcept { return __s.type() == file_type::character; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_character_file(const path& __p) { return is_character_file(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_character_file(const path& __p, error_code& __ec) noexcept { return is_character_file(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_directory(file_status __s) noexcept { return __s.type() == file_type::directory; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_directory(const path& __p) { return is_directory(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_directory(const path& __p, error_code& __ec) noexcept { return is_directory(__status(__p, &__ec)); }
_LIBCPP_FUNC_VIS bool __fs_is_empty(const path& p, error_code* ec = nullptr);
-inline _LIBCPP_INLINE_VISIBILITY bool is_empty(const path& __p) { return __fs_is_empty(__p); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_empty(const path& __p, error_code& __ec) { return __fs_is_empty(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_fifo(file_status __s) noexcept { return __s.type() == file_type::fifo; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_fifo(const path& __p) { return is_fifo(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_fifo(const path& __p, error_code& __ec) noexcept { return is_fifo(__status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_regular_file(file_status __s) noexcept { return __s.type() == file_type::regular; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_regular_file(const path& __p) { return is_regular_file(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_regular_file(const path& __p, error_code& __ec) noexcept { return is_regular_file(__status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_symlink(file_status __s) noexcept { return __s.type() == file_type::symlink; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_symlink(const path& __p) { return is_symlink(__symlink_status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_symlink(const path& __p, error_code& __ec) noexcept { return is_symlink(__symlink_status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_other(file_status __s) noexcept { return exists(__s) && !is_regular_file(__s) && !is_directory(__s) && !is_symlink(__s); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_other(const path& __p) { return is_other(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_other(const path& __p, error_code& __ec) noexcept { return is_other(__status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_socket(file_status __s) noexcept { return __s.type() == file_type::socket; }
-inline _LIBCPP_INLINE_VISIBILITY bool is_socket(const path& __p) { return is_socket(__status(__p)); }
-inline _LIBCPP_INLINE_VISIBILITY bool is_socket(const path& __p, error_code& __ec) noexcept { return is_socket(__status(__p, &__ec)); }
-inline _LIBCPP_INLINE_VISIBILITY file_time_type last_write_time(const path& __p) { return __last_write_time(__p); }
-inline _LIBCPP_INLINE_VISIBILITY file_time_type last_write_time(const path& __p, error_code& __ec) noexcept { return __last_write_time(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void last_write_time(const path& __p, file_time_type __t) { __last_write_time(__p, __t); }
-inline _LIBCPP_INLINE_VISIBILITY void last_write_time(const path& __p, file_time_type __t, error_code& __ec) noexcept { __last_write_time(__p, __t, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_empty(const path& __p) { return __fs_is_empty(__p); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_empty(const path& __p, error_code& __ec) { return __fs_is_empty(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_fifo(file_status __s) noexcept { return __s.type() == file_type::fifo; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_fifo(const path& __p) { return is_fifo(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_fifo(const path& __p, error_code& __ec) noexcept { return is_fifo(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_regular_file(file_status __s) noexcept { return __s.type() == file_type::regular; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_regular_file(const path& __p) { return is_regular_file(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_regular_file(const path& __p, error_code& __ec) noexcept { return is_regular_file(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_symlink(file_status __s) noexcept { return __s.type() == file_type::symlink; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_symlink(const path& __p) { return is_symlink(__symlink_status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_symlink(const path& __p, error_code& __ec) noexcept { return is_symlink(__symlink_status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_other(file_status __s) noexcept { return exists(__s) && !is_regular_file(__s) && !is_directory(__s) && !is_symlink(__s); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_other(const path& __p) { return is_other(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_other(const path& __p, error_code& __ec) noexcept { return is_other(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_socket(file_status __s) noexcept { return __s.type() == file_type::socket; }
+inline _LIBCPP_HIDE_FROM_ABI bool is_socket(const path& __p) { return is_socket(__status(__p)); }
+inline _LIBCPP_HIDE_FROM_ABI bool is_socket(const path& __p, error_code& __ec) noexcept { return is_socket(__status(__p, &__ec)); }
+inline _LIBCPP_HIDE_FROM_ABI file_time_type last_write_time(const path& __p) { return __last_write_time(__p); }
+inline _LIBCPP_HIDE_FROM_ABI file_time_type last_write_time(const path& __p, error_code& __ec) noexcept { return __last_write_time(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void last_write_time(const path& __p, file_time_type __t) { __last_write_time(__p, __t); }
+inline _LIBCPP_HIDE_FROM_ABI void last_write_time(const path& __p, file_time_type __t, error_code& __ec) noexcept { __last_write_time(__p, __t, &__ec); }
_LIBCPP_FUNC_VIS void __permissions(const path&, perms, perm_options, error_code* = nullptr);
-inline _LIBCPP_INLINE_VISIBILITY void permissions(const path& __p, perms __prms, perm_options __opts = perm_options::replace) { __permissions(__p, __prms, __opts); }
-inline _LIBCPP_INLINE_VISIBILITY void permissions(const path& __p, perms __prms, error_code& __ec) noexcept { __permissions(__p, __prms, perm_options::replace, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void permissions(const path& __p, perms __prms, perm_options __opts, error_code& __ec) { __permissions(__p, __prms, __opts, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void permissions(const path& __p, perms __prms, perm_options __opts = perm_options::replace) { __permissions(__p, __prms, __opts); }
+inline _LIBCPP_HIDE_FROM_ABI void permissions(const path& __p, perms __prms, error_code& __ec) noexcept { __permissions(__p, __prms, perm_options::replace, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void permissions(const path& __p, perms __prms, perm_options __opts, error_code& __ec) { __permissions(__p, __prms, __opts, &__ec); }
inline _LIBCPP_INLINE_VISIBILITY path proximate(const path& __p, const path& __base, error_code& __ec) {
path __tmp = __weakly_canonical(__p, &__ec);
@@ -155,10 +155,10 @@ inline _LIBCPP_INLINE_VISIBILITY path proximate(const path& __p, const path& __b
return __tmp.lexically_proximate(__tmp_base);
}
-inline _LIBCPP_INLINE_VISIBILITY path proximate(const path& __p, error_code& __ec) { return proximate(__p, current_path(), __ec); }
-inline _LIBCPP_INLINE_VISIBILITY path proximate(const path& __p, const path& __base = current_path()) { return __weakly_canonical(__p).lexically_proximate(__weakly_canonical(__base)); }
-inline _LIBCPP_INLINE_VISIBILITY path read_symlink(const path& __p) { return __read_symlink(__p); }
-inline _LIBCPP_INLINE_VISIBILITY path read_symlink(const path& __p, error_code& __ec) { return __read_symlink(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI path proximate(const path& __p, error_code& __ec) { return proximate(__p, current_path(), __ec); }
+inline _LIBCPP_HIDE_FROM_ABI path proximate(const path& __p, const path& __base = current_path()) { return __weakly_canonical(__p).lexically_proximate(__weakly_canonical(__base)); }
+inline _LIBCPP_HIDE_FROM_ABI path read_symlink(const path& __p) { return __read_symlink(__p); }
+inline _LIBCPP_HIDE_FROM_ABI path read_symlink(const path& __p, error_code& __ec) { return __read_symlink(__p, &__ec); }
inline _LIBCPP_INLINE_VISIBILITY path relative(const path& __p, const path& __base, error_code& __ec) {
path __tmp = __weakly_canonical(__p, &__ec);
@@ -170,27 +170,27 @@ inline _LIBCPP_INLINE_VISIBILITY path relative(const path& __p, const path& __ba
return __tmp.lexically_relative(__tmpbase);
}
-inline _LIBCPP_INLINE_VISIBILITY path relative(const path& __p, error_code& __ec) { return relative(__p, current_path(), __ec); }
-inline _LIBCPP_INLINE_VISIBILITY path relative(const path& __p, const path& __base = current_path()) { return __weakly_canonical(__p).lexically_relative(__weakly_canonical(__base)); }
-inline _LIBCPP_INLINE_VISIBILITY uintmax_t remove_all(const path& __p) { return __remove_all(__p); }
-inline _LIBCPP_INLINE_VISIBILITY uintmax_t remove_all(const path& __p, error_code& __ec) { return __remove_all(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY bool remove(const path& __p) { return __remove(__p); }
-inline _LIBCPP_INLINE_VISIBILITY bool remove(const path& __p, error_code& __ec) noexcept { return __remove(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void rename(const path& __from, const path& __to) { return __rename(__from, __to); }
-inline _LIBCPP_INLINE_VISIBILITY void rename(const path& __from, const path& __to, error_code& __ec) noexcept { return __rename(__from, __to, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY void resize_file(const path& __p, uintmax_t __ns) { return __resize_file(__p, __ns); }
-inline _LIBCPP_INLINE_VISIBILITY void resize_file(const path& __p, uintmax_t __ns, error_code& __ec) noexcept { return __resize_file(__p, __ns, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI path relative(const path& __p, error_code& __ec) { return relative(__p, current_path(), __ec); }
+inline _LIBCPP_HIDE_FROM_ABI path relative(const path& __p, const path& __base = current_path()) { return __weakly_canonical(__p).lexically_relative(__weakly_canonical(__base)); }
+inline _LIBCPP_HIDE_FROM_ABI uintmax_t remove_all(const path& __p) { return __remove_all(__p); }
+inline _LIBCPP_HIDE_FROM_ABI uintmax_t remove_all(const path& __p, error_code& __ec) { return __remove_all(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI bool remove(const path& __p) { return __remove(__p); }
+inline _LIBCPP_HIDE_FROM_ABI bool remove(const path& __p, error_code& __ec) noexcept { return __remove(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void rename(const path& __from, const path& __to) { return __rename(__from, __to); }
+inline _LIBCPP_HIDE_FROM_ABI void rename(const path& __from, const path& __to, error_code& __ec) noexcept { return __rename(__from, __to, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI void resize_file(const path& __p, uintmax_t __ns) { return __resize_file(__p, __ns); }
+inline _LIBCPP_HIDE_FROM_ABI void resize_file(const path& __p, uintmax_t __ns, error_code& __ec) noexcept { return __resize_file(__p, __ns, &__ec); }
_LIBCPP_FUNC_VIS space_info __space(const path&, error_code* __ec = nullptr);
-inline _LIBCPP_INLINE_VISIBILITY space_info space(const path& __p) { return __space(__p); }
-inline _LIBCPP_INLINE_VISIBILITY space_info space(const path& __p, error_code& __ec) noexcept { return __space(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY file_status status(const path& __p) { return __status(__p); }
-inline _LIBCPP_INLINE_VISIBILITY file_status status(const path& __p, error_code& __ec) noexcept { return __status(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY file_status symlink_status(const path& __p) { return __symlink_status(__p); }
-inline _LIBCPP_INLINE_VISIBILITY file_status symlink_status(const path& __p, error_code& __ec) noexcept { return __symlink_status(__p, &__ec); }
-inline _LIBCPP_INLINE_VISIBILITY path temp_directory_path() { return __temp_directory_path(); }
-inline _LIBCPP_INLINE_VISIBILITY path temp_directory_path(error_code& __ec) { return __temp_directory_path(&__ec); }
-inline _LIBCPP_INLINE_VISIBILITY path weakly_canonical(path const& __p) { return __weakly_canonical(__p); }
-inline _LIBCPP_INLINE_VISIBILITY path weakly_canonical(path const& __p, error_code& __ec) { return __weakly_canonical(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI space_info space(const path& __p) { return __space(__p); }
+inline _LIBCPP_HIDE_FROM_ABI space_info space(const path& __p, error_code& __ec) noexcept { return __space(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI file_status status(const path& __p) { return __status(__p); }
+inline _LIBCPP_HIDE_FROM_ABI file_status status(const path& __p, error_code& __ec) noexcept { return __status(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI file_status symlink_status(const path& __p) { return __symlink_status(__p); }
+inline _LIBCPP_HIDE_FROM_ABI file_status symlink_status(const path& __p, error_code& __ec) noexcept { return __symlink_status(__p, &__ec); }
+inline _LIBCPP_HIDE_FROM_ABI path temp_directory_path() { return __temp_directory_path(); }
+inline _LIBCPP_HIDE_FROM_ABI path temp_directory_path(error_code& __ec) { return __temp_directory_path(&__ec); }
+inline _LIBCPP_HIDE_FROM_ABI path weakly_canonical(path const& __p) { return __weakly_canonical(__p); }
+inline _LIBCPP_HIDE_FROM_ABI path weakly_canonical(path const& __p, error_code& __ec) { return __weakly_canonical(__p, &__ec); }
_LIBCPP_AVAILABILITY_FILESYSTEM_POP
diff --git a/contrib/libs/cxxsupp/libcxx/include/__filesystem/path.h b/contrib/libs/cxxsupp/libcxx/include/__filesystem/path.h
index 89b51075238..6b4b1ae9baa 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__filesystem/path.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__filesystem/path.h
@@ -10,6 +10,8 @@
#ifndef _LIBCPP___FILESYSTEM_PATH_H
#define _LIBCPP___FILESYSTEM_PATH_H
+#include <__algorithm/replace.h>
+#include <__algorithm/replace_copy.h>
#include <__availability>
#include <__config>
#include <__iterator/back_insert_iterator.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__filesystem/path_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__filesystem/path_iterator.h
index 0dfb04d5626..6f2baf8f7a2 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__filesystem/path_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__filesystem/path_iterator.h
@@ -10,9 +10,9 @@
#ifndef _LIBCPP___FILESYSTEM_PATH_ITERATOR_H
#define _LIBCPP___FILESYSTEM_PATH_ITERATOR_H
+#include <__assert>
#include <__availability>
#include <__config>
-#include <__debug>
#include <__filesystem/path.h>
#include <__iterator/iterator_traits.h>
#include <cstddef>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__filesystem/recursive_directory_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__filesystem/recursive_directory_iterator.h
index dedf890bdd2..95360376fc2 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__filesystem/recursive_directory_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__filesystem/recursive_directory_iterator.h
@@ -178,7 +178,7 @@ template <>
_LIBCPP_AVAILABILITY_FILESYSTEM
inline constexpr bool _VSTD::ranges::enable_view<_VSTD_FS::recursive_directory_iterator> = true;
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
#endif // _LIBCPP_CXX03_LANG
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/format_arg.h b/contrib/libs/cxxsupp/libcxx/include/__format/format_arg.h
index 8db42cdb980..5e1565bf159 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/format_arg.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/format_arg.h
@@ -10,6 +10,7 @@
#ifndef _LIBCPP___FORMAT_FORMAT_ARG_H
#define _LIBCPP___FORMAT_FORMAT_ARG_H
+#include <__assert>
#include <__concepts/arithmetic.h>
#include <__config>
#include <__format/format_error.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/format_string.h b/contrib/libs/cxxsupp/libcxx/include/__format/format_string.h
index 10fb471c35d..32af6609e7b 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/format_string.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/format_string.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___FORMAT_FORMAT_STRING_H
#define _LIBCPP___FORMAT_FORMAT_STRING_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__format/format_error.h>
#include <cstddef>
#include <cstdint>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/formatter.h b/contrib/libs/cxxsupp/libcxx/include/__format/formatter.h
index 1f423146bbc..f9e0b6c84b7 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/formatter.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/formatter.h
@@ -12,6 +12,8 @@
#include <__algorithm/copy.h>
#include <__algorithm/fill_n.h>
+#include <__algorithm/transform.h>
+#include <__assert>
#include <__availability>
#include <__config>
#include <__format/format_error.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_floating_point.h b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_floating_point.h
index c29cda48a98..aa32815af2a 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_floating_point.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_floating_point.h
@@ -17,9 +17,9 @@
#include <__algorithm/min.h>
#include <__algorithm/rotate.h>
#include <__algorithm/transform.h>
+#include <__assert>
#include <__concepts/arithmetic.h>
#include <__config>
-#include <__debug>
#include <__format/format_error.h>
#include <__format/format_fwd.h>
#include <__format/format_string.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_integral.h b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_integral.h
index 4f82b34462d..836082671c5 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_integral.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_integral.h
@@ -14,6 +14,7 @@
#include <__algorithm/copy_n.h>
#include <__algorithm/fill_n.h>
#include <__algorithm/transform.h>
+#include <__assert>
#include <__config>
#include <__format/format_error.h>
#include <__format/format_fwd.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_pointer.h b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_pointer.h
index 15b6764000a..83d21e1c50e 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_pointer.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_pointer.h
@@ -11,9 +11,9 @@
#define _LIBCPP___FORMAT_FORMATTER_POINTER_H
#include <__algorithm/copy.h>
+#include <__assert>
#include <__availability>
#include <__config>
-#include <__debug>
#include <__format/format_error.h>
#include <__format/format_fwd.h>
#include <__format/formatter.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_string.h b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_string.h
index 01e2bafda4e..54aa1215d99 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/formatter_string.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/formatter_string.h
@@ -10,6 +10,7 @@
#ifndef _LIBCPP___FORMAT_FORMATTER_STRING_H
#define _LIBCPP___FORMAT_FORMATTER_STRING_H
+#include <__assert>
#include <__config>
#include <__format/format_error.h>
#include <__format/format_fwd.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__format/parser_std_format_spec.h b/contrib/libs/cxxsupp/libcxx/include/__format/parser_std_format_spec.h
index ca4eae1fa91..57f4e46e561 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__format/parser_std_format_spec.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__format/parser_std_format_spec.h
@@ -12,8 +12,8 @@
#include <__algorithm/find_if.h>
#include <__algorithm/min.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__format/format_arg.h>
#include <__format/format_error.h>
#include <__format/format_string.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__functional/bind.h b/contrib/libs/cxxsupp/libcxx/include/__functional/bind.h
index 5eb035a8469..a5b0c0e1917 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__functional/bind.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__functional/bind.h
@@ -25,9 +25,9 @@ _LIBCPP_BEGIN_NAMESPACE_STD
template<class _Tp>
struct is_bind_expression : _If<
- _IsSame<_Tp, typename __uncvref<_Tp>::type>::value,
+ _IsSame<_Tp, __uncvref_t<_Tp> >::value,
false_type,
- is_bind_expression<typename __uncvref<_Tp>::type>
+ is_bind_expression<__uncvref_t<_Tp> >
> {};
#if _LIBCPP_STD_VER > 14
@@ -37,9 +37,9 @@ inline constexpr size_t is_bind_expression_v = is_bind_expression<_Tp>::value;
template<class _Tp>
struct is_placeholder : _If<
- _IsSame<_Tp, typename __uncvref<_Tp>::type>::value,
+ _IsSame<_Tp, __uncvref_t<_Tp> >::value,
integral_constant<int, 0>,
- is_placeholder<typename __uncvref<_Tp>::type>
+ is_placeholder<__uncvref_t<_Tp> >
> {};
#if _LIBCPP_STD_VER > 14
diff --git a/contrib/libs/cxxsupp/libcxx/include/__functional/function.h b/contrib/libs/cxxsupp/libcxx/include/__functional/function.h
index eace4c0cf7d..b1faed95496 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__functional/function.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__functional/function.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___FUNCTIONAL_FUNCTION_H
#define _LIBCPP___FUNCTIONAL_FUNCTION_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__functional/binary_function.h>
#include <__functional/invoke.h>
#include <__functional/unary_function.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__functional/hash.h b/contrib/libs/cxxsupp/libcxx/include/__functional/hash.h
index 82e65431369..89cb02a3685 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__functional/hash.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__functional/hash.h
@@ -789,8 +789,6 @@ struct _LIBCPP_TEMPLATE_VIS hash<long double>
}
};
-#if _LIBCPP_STD_VER > 11
-
_LIBCPP_SUPPRESS_DEPRECATED_PUSH
template <class _Tp, bool = is_enum<_Tp>::value>
struct _LIBCPP_TEMPLATE_VIS __enum_hash
@@ -807,7 +805,7 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
size_t operator()(_Tp __v) const _NOEXCEPT
{
typedef typename underlying_type<_Tp>::type type;
- return hash<type>{}(static_cast<type>(__v));
+ return hash<type>()(static_cast<type>(__v));
}
};
template <class _Tp>
@@ -821,7 +819,6 @@ template <class _Tp>
struct _LIBCPP_TEMPLATE_VIS hash : public __enum_hash<_Tp>
{
};
-#endif
#if _LIBCPP_STD_VER > 14
diff --git a/contrib/libs/cxxsupp/libcxx/include/__functional/ranges_operations.h b/contrib/libs/cxxsupp/libcxx/include/__functional/ranges_operations.h
index c8f02c06eec..e8cf51981ad 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__functional/ranges_operations.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__functional/ranges_operations.h
@@ -20,7 +20,8 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
namespace ranges {
struct equal_to {
@@ -90,7 +91,7 @@ struct greater_equal {
};
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__hash_table b/contrib/libs/cxxsupp/libcxx/include/__hash_table
index 4794a7f223f..e802dd21375 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__hash_table
+++ b/contrib/libs/cxxsupp/libcxx/include/__hash_table
@@ -10,10 +10,13 @@
#ifndef _LIBCPP__HASH_TABLE
#define _LIBCPP__HASH_TABLE
+#include <__algorithm/max.h>
+#include <__algorithm/min.h>
+#include <__assert>
#include <__bits> // __libcpp_clz
#include <__config>
#include <__debug>
-#include <algorithm>
+#include <__functional/hash.h>
#include <cmath>
#include <initializer_list>
#include <iterator>
@@ -44,7 +47,7 @@ template <class ..._Args>
struct __is_hash_value_type : false_type {};
template <class _One>
-struct __is_hash_value_type<_One> : __is_hash_value_type_imp<typename __uncvref<_One>::type> {};
+struct __is_hash_value_type<_One> : __is_hash_value_type_imp<__uncvref_t<_One> > {};
_LIBCPP_FUNC_VIS
size_t __next_prime(size_t __n);
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/advance.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/advance.h
index c0b847472bf..6f81fe3f653 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/advance.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/advance.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___ITERATOR_ADVANCE_H
#define _LIBCPP___ITERATOR_ADVANCE_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/concepts.h>
#include <__iterator/incrementable_traits.h>
#include <__iterator/iterator_traits.h>
@@ -65,7 +65,7 @@ void advance(_InputIter& __i, _Distance __orig_n) {
_VSTD::__advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category());
}
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
// [range.iter.op.advance]
@@ -192,7 +192,7 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/common_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/common_iterator.h
index ad74dbd3df5..505e4f1f3f0 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/common_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/common_iterator.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___ITERATOR_COMMON_ITERATOR_H
#define _LIBCPP___ITERATOR_COMMON_ITERATOR_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/concepts.h>
#include <__iterator/incrementable_traits.h>
#include <__iterator/iter_move.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/counted_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/counted_iterator.h
index c67743fbe37..826d5de51f9 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/counted_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/counted_iterator.h
@@ -9,8 +9,8 @@
#ifndef _LIBCPP___ITERATOR_COUNTED_ITERATOR_H
#define _LIBCPP___ITERATOR_COUNTED_ITERATOR_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/concepts.h>
#include <__iterator/default_sentinel.h>
#include <__iterator/incrementable_traits.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/default_sentinel.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/default_sentinel.h
index 0864d1c7443..669032aa972 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/default_sentinel.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/default_sentinel.h
@@ -18,12 +18,12 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if _LIBCPP_STD_VER > 17
struct default_sentinel_t { };
inline constexpr default_sentinel_t default_sentinel{};
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // _LIBCPP_STD_VER > 17
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/distance.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/distance.h
index bf90f892c31..78b8177fae6 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/distance.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/distance.h
@@ -52,7 +52,7 @@ distance(_InputIter __first, _InputIter __last)
return _VSTD::__distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category());
}
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
// [range.iter.op.distance]
@@ -100,7 +100,7 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/insert_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/insert_iterator.h
index 95907100ed8..aba197ec219 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/insert_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/insert_iterator.h
@@ -24,7 +24,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <class _Container>
using __insert_iterator_iter_t = ranges::iterator_t<_Container>;
#else
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/istream_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/istream_iterator.h
index f7014b8af14..9ee0a989b8f 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/istream_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/istream_iterator.h
@@ -11,6 +11,7 @@
#define _LIBCPP___ITERATOR_ISTREAM_ITERATOR_H
#include <__config>
+#include <__iterator/default_sentinel.h>
#include <__iterator/iterator.h>
#include <__iterator/iterator_traits.h>
#include <__memory/addressof.h>
@@ -45,6 +46,9 @@ private:
_Tp __value_;
public:
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istream_iterator() : __in_stream_(nullptr), __value_() {}
+#if _LIBCPP_STD_VER > 17
+ _LIBCPP_HIDE_FROM_ABI constexpr istream_iterator(default_sentinel_t) : istream_iterator() {}
+#endif // _LIBCPP_STD_VER > 17
_LIBCPP_INLINE_VISIBILITY istream_iterator(istream_type& __s) : __in_stream_(_VSTD::addressof(__s))
{
if (!(*__in_stream_ >> __value_))
@@ -67,6 +71,12 @@ public:
bool
operator==(const istream_iterator<_Up, _CharU, _TraitsU, _DistanceU>& __x,
const istream_iterator<_Up, _CharU, _TraitsU, _DistanceU>& __y);
+
+#if _LIBCPP_STD_VER > 17
+ friend _LIBCPP_HIDE_FROM_ABI bool operator==(const istream_iterator& __i, default_sentinel_t) {
+ return __i.__in_stream_ == nullptr;
+ }
+#endif // _LIBCPP_STD_VER > 17
};
template <class _Tp, class _CharT, class _Traits, class _Distance>
@@ -78,6 +88,7 @@ operator==(const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __x,
return __x.__in_stream_ == __y.__in_stream_;
}
+#if _LIBCPP_STD_VER <= 17
template <class _Tp, class _CharT, class _Traits, class _Distance>
inline _LIBCPP_INLINE_VISIBILITY
bool
@@ -86,6 +97,7 @@ operator!=(const istream_iterator<_Tp, _CharT, _Traits, _Distance>& __x,
{
return !(__x == __y);
}
+#endif // _LIBCPP_STD_VER <= 17
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/istreambuf_iterator.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/istreambuf_iterator.h
index 16b2cb7b4a8..3b16f794767 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/istreambuf_iterator.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/istreambuf_iterator.h
@@ -11,6 +11,7 @@
#define _LIBCPP___ITERATOR_ISTREAMBUF_ITERATOR_H
#include <__config>
+#include <__iterator/default_sentinel.h>
#include <__iterator/iterator.h>
#include <__iterator/iterator_traits.h>
#include <iosfwd> // for forward declaration of basic_streambuf
@@ -65,6 +66,10 @@ private:
}
public:
_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istreambuf_iterator() _NOEXCEPT : __sbuf_(nullptr) {}
+#if _LIBCPP_STD_VER > 17
+ _LIBCPP_INLINE_VISIBILITY constexpr istreambuf_iterator(default_sentinel_t) noexcept
+ : istreambuf_iterator() {}
+#endif // _LIBCPP_STD_VER > 17
_LIBCPP_INLINE_VISIBILITY istreambuf_iterator(istream_type& __s) _NOEXCEPT
: __sbuf_(__s.rdbuf()) {}
_LIBCPP_INLINE_VISIBILITY istreambuf_iterator(streambuf_type* __s) _NOEXCEPT
@@ -86,6 +91,12 @@ public:
_LIBCPP_INLINE_VISIBILITY bool equal(const istreambuf_iterator& __b) const
{return __test_for_eof() == __b.__test_for_eof();}
+
+#if _LIBCPP_STD_VER > 17
+ friend _LIBCPP_HIDE_FROM_ABI bool operator==(const istreambuf_iterator& __i, default_sentinel_t) {
+ return __i.__test_for_eof();
+ }
+#endif // _LIBCPP_STD_VER > 17
};
template <class _CharT, class _Traits>
@@ -94,11 +105,13 @@ bool operator==(const istreambuf_iterator<_CharT,_Traits>& __a,
const istreambuf_iterator<_CharT,_Traits>& __b)
{return __a.equal(__b);}
+#if _LIBCPP_STD_VER <= 17
template <class _CharT, class _Traits>
inline _LIBCPP_INLINE_VISIBILITY
bool operator!=(const istreambuf_iterator<_CharT,_Traits>& __a,
const istreambuf_iterator<_CharT,_Traits>& __b)
{return !__a.equal(__b);}
+#endif // _LIBCPP_STD_VER <= 17
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_move.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_move.h
index 43c1bf86490..4a896629278 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_move.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_move.h
@@ -86,7 +86,7 @@ template<__dereferenceable _Tp>
requires requires(_Tp& __t) { { ranges::iter_move(__t) } -> __can_reference; }
using iter_rvalue_reference_t = decltype(ranges::iter_move(declval<_Tp&>()));
-#endif // !_LIBCPP_HAS_NO_CONCEPTS
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_swap.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_swap.h
index 7b272e63aa5..291558fadc0 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_swap.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/iter_swap.h
@@ -14,7 +14,6 @@
#include <__iterator/iter_move.h>
#include <__iterator/iterator_traits.h>
#include <__iterator/readable_traits.h>
-#include <__ranges/access.h>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <concepts>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/mergeable.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/mergeable.h
new file mode 100644
index 00000000000..08022aab6d2
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/mergeable.h
@@ -0,0 +1,41 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP___ITERATOR_MERGEABLE_H
+#define _LIBCPP___ITERATOR_MERGEABLE_H
+
+#include <__config>
+#include <__functional/identity.h>
+#include <__functional/ranges_operations.h>
+#include <__iterator/concepts.h>
+#include <__iterator/projected.h>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+# pragma GCC system_header
+#endif
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
+template <class _Input1, class _Input2, class _Output,
+ class _Comp = ranges::less, class _Proj1 = identity, class _Proj2 = identity>
+concept mergeable =
+ input_iterator<_Input1> &&
+ input_iterator<_Input2> &&
+ weakly_incrementable<_Output> &&
+ indirectly_copyable<_Input1, _Output> &&
+ indirectly_copyable<_Input2, _Output> &&
+ indirect_strict_weak_order<_Comp, projected<_Input1, _Proj1>, projected<_Input2, _Proj2>>;
+
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
+_LIBCPP_END_NAMESPACE_STD
+
+#endif // _LIBCPP___ITERATOR_MERGEABLE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/next.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/next.h
index 2d4d223e0c5..2a37382cca0 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/next.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/next.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___ITERATOR_NEXT_H
#define _LIBCPP___ITERATOR_NEXT_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/advance.h>
#include <__iterator/concepts.h>
#include <__iterator/incrementable_traits.h>
@@ -35,7 +35,7 @@ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14
return __x;
}
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
// [range.iter.op.next]
@@ -79,7 +79,7 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/prev.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/prev.h
index 62e7d0654ec..36bf3d906a9 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/prev.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/prev.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___ITERATOR_PREV_H
#define _LIBCPP___ITERATOR_PREV_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/advance.h>
#include <__iterator/concepts.h>
#include <__iterator/incrementable_traits.h>
@@ -34,7 +34,7 @@ inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14
return __x;
}
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
// [range.iter.op.prev]
@@ -71,7 +71,7 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_access.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_access.h
index 931ff582323..40c266378d3 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_access.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/reverse_access.h
@@ -21,8 +21,6 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_CXX03_LANG)
-
#if _LIBCPP_STD_VER > 11
template <class _Tp, size_t _Np>
@@ -95,9 +93,7 @@ auto crend(const _Cp& __c) -> decltype(_VSTD::rend(__c))
return _VSTD::rend(__c);
}
-#endif
-
-#endif // !defined(_LIBCPP_CXX03_LANG)
+#endif // _LIBCPP_STD_VER > 11
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__iterator/sortable.h b/contrib/libs/cxxsupp/libcxx/include/__iterator/sortable.h
new file mode 100644
index 00000000000..77a553d3ec3
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxx/include/__iterator/sortable.h
@@ -0,0 +1,37 @@
+// -*- C++ -*-
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef _LIBCPP___ITERATOR_SORTABLE_H
+#define _LIBCPP___ITERATOR_SORTABLE_H
+
+#include <__config>
+#include <__functional/identity.h>
+#include <__functional/ranges_operations.h>
+#include <__iterator/concepts.h>
+#include <__iterator/permutable.h>
+#include <__iterator/projected.h>
+
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
+# pragma GCC system_header
+#endif
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
+template <class _Iter, class _Comp = ranges::less, class _Proj = identity>
+concept sortable =
+ permutable<_Iter> &&
+ indirect_strict_weak_order<_Comp, projected<_Iter, _Proj>>;
+
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
+_LIBCPP_END_NAMESPACE_STD
+
+#endif // _LIBCPP___ITERATOR_SORTABLE_H
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/allocator_arg_t.h b/contrib/libs/cxxsupp/libcxx/include/__memory/allocator_arg_t.h
index d93d99dea0c..2d63b1f905e 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/allocator_arg_t.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__memory/allocator_arg_t.h
@@ -36,7 +36,7 @@ extern _LIBCPP_EXPORTED_FROM_ABI const allocator_arg_t allocator_arg;
template <class _Tp, class _Alloc, class ..._Args>
struct __uses_alloc_ctor_imp
{
- typedef _LIBCPP_NODEBUG typename __uncvref<_Alloc>::type _RawAlloc;
+ typedef _LIBCPP_NODEBUG __uncvref_t<_Alloc> _RawAlloc;
static const bool __ua = uses_allocator<_Tp, _RawAlloc>::value;
static const bool __ic =
is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value;
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/concepts.h b/contrib/libs/cxxsupp/libcxx/include/__memory/concepts.h
index 834cae99b99..816c553e855 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/concepts.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__memory/concepts.h
@@ -25,7 +25,8 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
namespace ranges {
// [special.mem.concepts]
@@ -59,7 +60,8 @@ concept __nothrow_forward_range =
__nothrow_forward_iterator<iterator_t<_Rp>>;
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/construct_at.h b/contrib/libs/cxxsupp/libcxx/include/__memory/construct_at.h
index d0328f89057..8a7bf40d7f7 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/construct_at.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__memory/construct_at.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___MEMORY_CONSTRUCT_AT_H
#define _LIBCPP___MEMORY_CONSTRUCT_AT_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/access.h>
#include <__memory/addressof.h>
#include <__memory/voidify.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_construct_at.h b/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_construct_at.h
index 7ba4123ea1c..3064f811e94 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_construct_at.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_construct_at.h
@@ -29,7 +29,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
namespace ranges {
// construct_at
@@ -117,7 +117,7 @@ inline namespace __cpo {
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_uninitialized_algorithms.h b/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_uninitialized_algorithms.h
index 6f702683378..e036c1858b5 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_uninitialized_algorithms.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__memory/ranges_uninitialized_algorithms.h
@@ -32,7 +32,8 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
namespace ranges {
// uninitialized_default_construct
@@ -309,7 +310,8 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__memory/unique_ptr.h b/contrib/libs/cxxsupp/libcxx/include/__memory/unique_ptr.h
index ac589452aaf..2c1f0aa0d0f 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__memory/unique_ptr.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__memory/unique_ptr.h
@@ -264,7 +264,6 @@ public:
unique_ptr& operator=(unique_ptr const&) = delete;
#endif
-
_LIBCPP_INLINE_VISIBILITY
~unique_ptr() { reset(); }
@@ -486,7 +485,6 @@ public:
unique_ptr(unique_ptr const&) = delete;
unique_ptr& operator=(unique_ptr const&) = delete;
#endif
-
public:
_LIBCPP_INLINE_VISIBILITY
~unique_ptr() { reset(); }
diff --git a/contrib/libs/cxxsupp/libcxx/include/__node_handle b/contrib/libs/cxxsupp/libcxx/include/__node_handle
index fc35d0ff0b4..71309be62f3 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__node_handle
+++ b/contrib/libs/cxxsupp/libcxx/include/__node_handle
@@ -58,8 +58,8 @@ public:
*/
+#include <__assert>
#include <__config>
-#include <__debug>
#include <memory>
#include <optional>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__numeric/gcd_lcm.h b/contrib/libs/cxxsupp/libcxx/include/__numeric/gcd_lcm.h
index 34c0e533c92..9a53a001f21 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__numeric/gcd_lcm.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__numeric/gcd_lcm.h
@@ -10,8 +10,8 @@
#ifndef _LIBCPP___NUMERIC_GCD_LCM_H
#define _LIBCPP___NUMERIC_GCD_LCM_H
+#include <__assert>
#include <__config>
-#include <__debug>
#include <limits>
#include <type_traits>
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/concepts.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/concepts.h
index 812cbbe1ec0..709f3d80f7e 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/concepts.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__ranges/concepts.h
@@ -35,13 +35,18 @@ _LIBCPP_BEGIN_NAMESPACE_STD
#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
namespace ranges {
+
// [range.range]
+
template <class _Tp>
concept range = requires(_Tp& __t) {
ranges::begin(__t); // sometimes equality-preserving
ranges::end(__t);
};
+ template <class _Tp>
+ concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>;
+
template<class _Range>
concept borrowed_range = range<_Range> &&
(is_lvalue_reference_v<_Range> || enable_borrowed_range<remove_cvref_t<_Range>>);
@@ -63,6 +68,8 @@ namespace ranges {
template <range _Rp>
using range_rvalue_reference_t = iter_rvalue_reference_t<iterator_t<_Rp>>;
+#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
// [range.sized]
template <class _Tp>
concept sized_range = range<_Tp> && requires(_Tp& __t) { ranges::size(__t); };
@@ -94,9 +101,6 @@ namespace ranges {
concept output_range = range<_Rp> && output_iterator<iterator_t<_Rp>, _Tp>;
template <class _Tp>
- concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>;
-
- template <class _Tp>
concept forward_range = input_range<_Tp> && forward_iterator<iterator_t<_Tp>>;
template <class _Tp>
@@ -131,6 +135,8 @@ namespace ranges {
(is_lvalue_reference_v<_Tp> ||
(movable<remove_reference_t<_Tp>> && !__is_std_initializer_list<remove_cvref_t<_Tp>>))));
+#endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
+
} // namespace ranges
#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/dangling.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/dangling.h
index 01bf60972eb..3a200ed9654 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/dangling.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__ranges/dangling.h
@@ -35,7 +35,7 @@ using borrowed_iterator_t = _If<borrowed_range<_Rp>, iterator_t<_Rp>, dangling>;
// borrowed_subrange_t defined in <__ranges/subrange.h>
} // namespace ranges
-#endif // !_LIBCPP_HAS_NO_CONCEPTS
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/data.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/data.h
index 4f0496d6e41..dbb4767e53b 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/data.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__ranges/data.h
@@ -24,7 +24,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
// [range.prim.data]
@@ -99,7 +99,7 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_borrowed_range.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_borrowed_range.h
index da6aab9193f..b8f809b6ceb 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_borrowed_range.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_borrowed_range.h
@@ -24,8 +24,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-namespace ranges
-{
+namespace ranges {
// [range.range], ranges
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_view.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_view.h
index 85f2a584739..4b4b63a42c0 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_view.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__ranges/enable_view.h
@@ -40,7 +40,7 @@ inline constexpr bool enable_view = derived_from<_Tp, view_base> ||
} // namespace ranges
-#endif // !_LIBCPP_HAS_NO_CONCEPTS
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__ranges/size.h b/contrib/libs/cxxsupp/libcxx/include/__ranges/size.h
index 50bcca6874e..2c5a96e63b7 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__ranges/size.h
+++ b/contrib/libs/cxxsupp/libcxx/include/__ranges/size.h
@@ -24,7 +24,7 @@
_LIBCPP_BEGIN_NAMESPACE_STD
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
namespace ranges {
template<class>
@@ -128,7 +128,7 @@ inline namespace __cpo {
} // namespace __cpo
} // namespace ranges
-#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/include/__split_buffer b/contrib/libs/cxxsupp/libcxx/include/__split_buffer
index 33320242355..dd789e8e9d0 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__split_buffer
+++ b/contrib/libs/cxxsupp/libcxx/include/__split_buffer
@@ -2,9 +2,17 @@
#ifndef _LIBCPP_SPLIT_BUFFER
#define _LIBCPP_SPLIT_BUFFER
+#include <__algorithm/max.h>
+#include <__algorithm/move.h>
+#include <__algorithm/move_backward.h>
#include <__config>
+#include <__iterator/distance.h>
+#include <__iterator/iterator_traits.h>
+#include <__iterator/move_iterator.h>
+#include <__memory/allocator.h>
+#include <__memory/compressed_pair.h>
#include <__utility/forward.h>
-#include <algorithm>
+#include <memory>
#include <type_traits>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/contrib/libs/cxxsupp/libcxx/include/__string b/contrib/libs/cxxsupp/libcxx/include/__string
index 0072a770ba6..57ac5379ed2 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__string
+++ b/contrib/libs/cxxsupp/libcxx/include/__string
@@ -17,7 +17,9 @@
#include <__algorithm/find_end.h>
#include <__algorithm/find_first_of.h>
#include <__algorithm/min.h>
+#include <__assert>
#include <__config>
+#include <__debug>
#include <__functional/hash.h> // for __murmur2_or_cityhash
#include <__iterator/iterator_traits.h>
#include <cstdint> // for uint_least16_t
@@ -30,8 +32,6 @@
# include <cwchar> // for wmemcpy
#endif
-#include <__debug>
-
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif
diff --git a/contrib/libs/cxxsupp/libcxx/include/__tree b/contrib/libs/cxxsupp/libcxx/include/__tree
index 2733a1ef4e8..384d3835049 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__tree
+++ b/contrib/libs/cxxsupp/libcxx/include/__tree
@@ -10,9 +10,9 @@
#ifndef _LIBCPP___TREE
#define _LIBCPP___TREE
+#include <__algorithm/min.h>
#include <__config>
#include <__utility/forward.h>
-#include <algorithm>
#include <iterator>
#include <limits>
#include <memory>
@@ -545,7 +545,7 @@ template <class ..._Args>
struct __is_tree_value_type : false_type {};
template <class _One>
-struct __is_tree_value_type<_One> : __is_tree_value_type_imp<typename __uncvref<_One>::type> {};
+struct __is_tree_value_type<_One> : __is_tree_value_type_imp<__uncvref_t<_One> > {};
template <class _Tp>
struct __tree_key_value_types {
diff --git a/contrib/libs/cxxsupp/libcxx/include/__tuple b/contrib/libs/cxxsupp/libcxx/include/__tuple
index 544eb8ed33e..89448b0a43d 100644
--- a/contrib/libs/cxxsupp/libcxx/include/__tuple
+++ b/contrib/libs/cxxsupp/libcxx/include/__tuple
@@ -291,7 +291,7 @@ using __type_pack_element = typename __y_type_pack_element<_Idx, _Types...>::__t
#endif // __has_builtin(__type_pack_element)
template <size_t _Ip, class ..._Types>
-struct _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, __tuple_types<_Types...>>
+struct _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, __tuple_types<_Types...> >
{
static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range");
typedef _LIBCPP_NODEBUG __type_pack_element<_Ip, _Types...> type;
@@ -554,8 +554,7 @@ template <class _SizeTrait, size_t _Expected>
struct __tuple_like_with_size_imp<true, _SizeTrait, _Expected>
: integral_constant<bool, _SizeTrait::value == _Expected> {};
-template <class _Tuple, size_t _ExpectedSize,
- class _RawTuple = typename __uncvref<_Tuple>::type>
+template <class _Tuple, size_t _ExpectedSize, class _RawTuple = __uncvref_t<_Tuple> >
using __tuple_like_with_size _LIBCPP_NODEBUG = __tuple_like_with_size_imp<
__tuple_like<_RawTuple>::value,
tuple_size<_RawTuple>, _ExpectedSize
diff --git a/contrib/libs/cxxsupp/libcxx/include/array b/contrib/libs/cxxsupp/libcxx/include/array
index 8d6a3b5a9f1..314d24935a4 100644
--- a/contrib/libs/cxxsupp/libcxx/include/array
+++ b/contrib/libs/cxxsupp/libcxx/include/array
@@ -108,11 +108,14 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
*/
+#include <__algorithm/equal.h>
+#include <__algorithm/fill_n.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__algorithm/swap_ranges.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__tuple>
#include <__utility/unreachable.h>
-#include <algorithm>
#include <iterator>
#include <stdexcept>
#include <type_traits>
diff --git a/contrib/libs/cxxsupp/libcxx/include/atomic b/contrib/libs/cxxsupp/libcxx/include/atomic
index b047e9e18f2..bdb986fcc38 100644
--- a/contrib/libs/cxxsupp/libcxx/include/atomic
+++ b/contrib/libs/cxxsupp/libcxx/include/atomic
@@ -540,7 +540,7 @@ template <class T>
# error <atomic> is not implemented
#endif
#ifdef kill_dependency
-# error C++ standard library is incompatible with <stdatomic.h> before C++23. Please compile with -std=c++23.
+# error C++ standard library is incompatible with <stdatomic.h>
#endif
#define _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m) \
@@ -1676,13 +1676,7 @@ struct __atomic_base // false
#pragma warning ( push )
#pragma warning ( disable : 4522 )
#endif
-#ifndef _LIBCPP_CXX03_LANG
__atomic_base(const __atomic_base&) = delete;
-#else
-private:
- _LIBCPP_INLINE_VISIBILITY
- __atomic_base(const __atomic_base&);
-#endif
#ifdef _LIBCPP_COMPILER_MSVC
#pragma warning ( pop )
#endif
@@ -2471,22 +2465,13 @@ typedef struct atomic_flag
#pragma warning ( push )
#pragma warning ( disable : 4522 )
#endif
-#ifndef _LIBCPP_CXX03_LANG
atomic_flag(const atomic_flag&) = delete;
atomic_flag& operator=(const atomic_flag&) = delete;
atomic_flag& operator=(const atomic_flag&) volatile = delete;
-#else
-private:
- _LIBCPP_INLINE_VISIBILITY
- atomic_flag(const atomic_flag&);
- _LIBCPP_INLINE_VISIBILITY
- atomic_flag& operator=(const atomic_flag&);
- _LIBCPP_INLINE_VISIBILITY
- atomic_flag& operator=(const atomic_flag&) volatile;
-#endif
#ifdef _LIBCPP_COMPILER_MSVC
#pragma warning ( pop )
#endif
+
} atomic_flag;
diff --git a/contrib/libs/cxxsupp/libcxx/include/bit b/contrib/libs/cxxsupp/libcxx/include/bit
index 16c7987d0f9..7f9318ecde1 100644
--- a/contrib/libs/cxxsupp/libcxx/include/bit
+++ b/contrib/libs/cxxsupp/libcxx/include/bit
@@ -61,11 +61,11 @@ namespace std {
*/
+#include <__assert>
#include <__bit/bit_cast.h>
#include <__bit/byteswap.h>
#include <__bits> // __libcpp_clz
#include <__config>
-#include <__debug>
#include <limits>
#include <type_traits>
#include <version>
diff --git a/contrib/libs/cxxsupp/libcxx/include/bitset b/contrib/libs/cxxsupp/libcxx/include/bitset
index 2930d43e383..d5c42991d9f 100644
--- a/contrib/libs/cxxsupp/libcxx/include/bitset
+++ b/contrib/libs/cxxsupp/libcxx/include/bitset
@@ -112,8 +112,10 @@ template <size_t N> struct hash<std::bitset<N>>;
*/
+#include <__algorithm/fill.h>
#include <__bit_reference>
#include <__config>
+#include <__functional/unary_function.h>
#include <climits>
#include <cstddef>
#include <iosfwd>
diff --git a/contrib/libs/cxxsupp/libcxx/include/charconv b/contrib/libs/cxxsupp/libcxx/include/charconv
index 8a953b049c9..86cbbd8c9a5 100644
--- a/contrib/libs/cxxsupp/libcxx/include/charconv
+++ b/contrib/libs/cxxsupp/libcxx/include/charconv
@@ -77,6 +77,7 @@ namespace std {
*/
+#include <__assert>
#include <__availability>
#include <__bits>
#include <__charconv/chars_format.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/deque b/contrib/libs/cxxsupp/libcxx/include/deque
index ef5c5e20519..50a8b381534 100644
--- a/contrib/libs/cxxsupp/libcxx/include/deque
+++ b/contrib/libs/cxxsupp/libcxx/include/deque
@@ -160,12 +160,20 @@ template <class T, class Allocator, class Predicate>
*/
+#include <__algorithm/copy.h>
+#include <__algorithm/copy_backward.h>
+#include <__algorithm/equal.h>
+#include <__algorithm/fill_n.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__algorithm/min.h>
+#include <__algorithm/remove.h>
+#include <__algorithm/remove_if.h>
+#include <__algorithm/unwrap_iter.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/iterator_traits.h>
#include <__split_buffer>
#include <__utility/forward.h>
-#include <algorithm>
#include <compare>
#include <initializer_list>
#include <iterator>
diff --git a/contrib/libs/cxxsupp/libcxx/include/format b/contrib/libs/cxxsupp/libcxx/include/format
index 03c25f15d49..356a3051b93 100644
--- a/contrib/libs/cxxsupp/libcxx/include/format
+++ b/contrib/libs/cxxsupp/libcxx/include/format
@@ -122,6 +122,7 @@ namespace std {
// Enable the contents of the header only when libc++ was built with LIBCXX_ENABLE_INCOMPLETE_FEATURES.
#if !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)
+#include <__algorithm/clamp.h>
#include <__config>
#include <__debug>
#include <__format/format_arg.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/forward_list b/contrib/libs/cxxsupp/libcxx/include/forward_list
index 5e864fed8f7..e01a8e71893 100644
--- a/contrib/libs/cxxsupp/libcxx/include/forward_list
+++ b/contrib/libs/cxxsupp/libcxx/include/forward_list
@@ -179,9 +179,11 @@ template <class T, class Allocator, class Predicate>
*/
+#include <__algorithm/comp.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__algorithm/min.h>
#include <__config>
#include <__utility/forward.h>
-#include <algorithm>
#include <initializer_list>
#include <iterator>
#include <limits>
diff --git a/contrib/libs/cxxsupp/libcxx/include/fstream b/contrib/libs/cxxsupp/libcxx/include/fstream
index aadcd568742..eeab0b53980 100644
--- a/contrib/libs/cxxsupp/libcxx/include/fstream
+++ b/contrib/libs/cxxsupp/libcxx/include/fstream
@@ -179,9 +179,10 @@ typedef basic_fstream<wchar_t> wfstream;
*/
+#include <__algorithm/max.h>
+#include <__assert>
#include <__availability>
#include <__config>
-#include <__debug>
#include <__locale>
#include <__utility/unreachable.h>
#include <cstdio>
diff --git a/contrib/libs/cxxsupp/libcxx/include/future b/contrib/libs/cxxsupp/libcxx/include/future
index d49bc809783..15685dfb22c 100644
--- a/contrib/libs/cxxsupp/libcxx/include/future
+++ b/contrib/libs/cxxsupp/libcxx/include/future
@@ -361,9 +361,9 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
*/
+#include <__assert>
#include <__availability>
#include <__config>
-#include <__debug>
#include <__memory/allocator_arg_t.h>
#include <__memory/uses_allocator.h>
#include <__utility/auto_cast.h>
@@ -1885,25 +1885,11 @@ public:
_LIBCPP_INLINE_VISIBILITY
packaged_task() _NOEXCEPT : __p_(nullptr) {}
template <class _Fp,
- class = typename enable_if
- <
- !is_same<
- typename __uncvref<_Fp>::type,
- packaged_task
- >::value
- >::type
- >
+ class = __enable_if_t<!is_same<__uncvref_t<_Fp>, packaged_task>::value> >
_LIBCPP_INLINE_VISIBILITY
explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {}
template <class _Fp, class _Allocator,
- class = typename enable_if
- <
- !is_same<
- typename __uncvref<_Fp>::type,
- packaged_task
- >::value
- >::type
- >
+ class = __enable_if_t<!is_same<__uncvref_t<_Fp>, packaged_task>::value> >
_LIBCPP_INLINE_VISIBILITY
packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f)
: __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)),
@@ -2014,25 +2000,11 @@ public:
_LIBCPP_INLINE_VISIBILITY
packaged_task() _NOEXCEPT : __p_(nullptr) {}
template <class _Fp,
- class = typename enable_if
- <
- !is_same<
- typename __uncvref<_Fp>::type,
- packaged_task
- >::value
- >::type
- >
+ class = __enable_if_t<!is_same<__uncvref_t<_Fp>, packaged_task>::value> >
_LIBCPP_INLINE_VISIBILITY
explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {}
template <class _Fp, class _Allocator,
- class = typename enable_if
- <
- !is_same<
- typename __uncvref<_Fp>::type,
- packaged_task
- >::value
- >::type
- >
+ class = __enable_if_t<!is_same<__uncvref_t<_Fp>, packaged_task>::value> >
_LIBCPP_INLINE_VISIBILITY
packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f)
: __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)),
diff --git a/contrib/libs/cxxsupp/libcxx/include/iterator b/contrib/libs/cxxsupp/libcxx/include/iterator
index 202667809dc..6e2eb4a78c2 100644
--- a/contrib/libs/cxxsupp/libcxx/include/iterator
+++ b/contrib/libs/cxxsupp/libcxx/include/iterator
@@ -138,24 +138,33 @@ template<class In, class Out>
// [alg.req.ind.copy], concept indirectly_copyable
template<class In, class Out>
- concept indirectly_copyable = see below; // since C++20
+ concept indirectly_copyable = see below; // since C++20
template<class In, class Out>
- concept indirectly_copyable_storable = see below; // since C++20
+ concept indirectly_copyable_storable = see below; // since C++20
// [alg.req.ind.swap], concept indirectly_swappable
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 =
indirect_binary_predicate<R, projected<I1, P1>, projected<I2, P2>>; // since C++20
+// [alg.req.permutable], concept permutable
+template<class I>
+ concept permutable = see below; // since C++20
+
+ // [alg.req.mergeable], concept mergeable
+template<class I1, class I2, class Out,
+ class R = ranges::less, class P1 = identity, class P2 = identity>
+ concept mergeable = see below; // since C++20
+
+// [alg.req.sortable], concept sortable
+template<class I, class R = ranges::less, class P = identity>
+ concept sortable = see below; // since C++20
+
template<input_or_output_iterator I, sentinel_for<I> S>
requires (!same_as<I, S> && copyable<I>)
class common_iterator; // since C++20
@@ -448,7 +457,8 @@ public:
typedef traits traits_type;
typedef basic_istream<charT, traits> istream_type;
- constexpr istream_iterator();
+ istream_iterator(); // constexpr since C++11
+ constexpr istream_iterator(default_sentinel_t); // since C++20
istream_iterator(istream_type& s);
istream_iterator(const istream_iterator& x);
~istream_iterator();
@@ -457,6 +467,7 @@ public:
const T* operator->() const;
istream_iterator& operator++();
istream_iterator operator++(int);
+ friend bool operator==(const istream_iterator& i, default_sentinel_t); // since C++20
};
template <class T, class charT, class traits, class Distance>
@@ -464,7 +475,7 @@ bool operator==(const istream_iterator<T,charT,traits,Distance>& x,
const istream_iterator<T,charT,traits,Distance>& y);
template <class T, class charT, class traits, class Distance>
bool operator!=(const istream_iterator<T,charT,traits,Distance>& x,
- const istream_iterator<T,charT,traits,Distance>& y);
+ const istream_iterator<T,charT,traits,Distance>& y); // until C++20
template <class T, class charT = char, class traits = char_traits<charT> >
class ostream_iterator
@@ -510,7 +521,8 @@ public:
typedef basic_streambuf<charT, traits> streambuf_type;
typedef basic_istream<charT, traits> istream_type;
- istreambuf_iterator() noexcept;
+ istreambuf_iterator() noexcept; // constexpr since C++11
+ constexpr istreambuf_iterator(default_sentinel_t) noexcept; // since C++20
istreambuf_iterator(istream_type& s) noexcept;
istreambuf_iterator(streambuf_type* s) noexcept;
istreambuf_iterator(a-private-type) noexcept;
@@ -521,6 +533,7 @@ public:
a-private-type operator++(int);
bool equal(const istreambuf_iterator& b) const;
+ friend bool operator==(const istreambuf_iterator& i, default_sentinel_t s); // since C++20
};
template <class charT, class traits>
@@ -528,7 +541,7 @@ bool operator==(const istreambuf_iterator<charT,traits>& a,
const istreambuf_iterator<charT,traits>& b);
template <class charT, class traits>
bool operator!=(const istreambuf_iterator<charT,traits>& a,
- const istreambuf_iterator<charT,traits>& b);
+ const istreambuf_iterator<charT,traits>& b); // until C++20
template <class charT, class traits = char_traits<charT> >
class ostreambuf_iterator
@@ -619,6 +632,7 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <__iterator/iter_swap.h>
#include <__iterator/iterator.h>
#include <__iterator/iterator_traits.h>
+#include <__iterator/mergeable.h>
#include <__iterator/move_iterator.h>
#include <__iterator/next.h>
#include <__iterator/ostream_iterator.h>
@@ -630,6 +644,7 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <__iterator/reverse_access.h>
#include <__iterator/reverse_iterator.h>
#include <__iterator/size.h>
+#include <__iterator/sortable.h>
#include <__iterator/unreachable_sentinel.h>
#include <__iterator/wrap_iter.h>
#include <__memory/addressof.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/list b/contrib/libs/cxxsupp/libcxx/include/list
index 20de3f43cb4..b1f6c570079 100644
--- a/contrib/libs/cxxsupp/libcxx/include/list
+++ b/contrib/libs/cxxsupp/libcxx/include/list
@@ -180,10 +180,14 @@ template <class T, class Allocator, class Predicate>
*/
+#include <__algorithm/comp.h>
+#include <__algorithm/equal.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__algorithm/min.h>
+#include <__assert>
#include <__config>
#include <__debug>
#include <__utility/forward.h>
-#include <algorithm>
#include <initializer_list>
#include <iterator>
#include <limits>
diff --git a/contrib/libs/cxxsupp/libcxx/include/locale b/contrib/libs/cxxsupp/libcxx/include/locale
index c540305d338..ab1a8bf9888 100644
--- a/contrib/libs/cxxsupp/libcxx/include/locale
+++ b/contrib/libs/cxxsupp/libcxx/include/locale
@@ -187,10 +187,15 @@ template <class charT> class messages_byname;
*/
+#include <__algorithm/equal.h>
+#include <__algorithm/find.h>
+#include <__algorithm/max.h>
+#include <__algorithm/reverse.h>
+#include <__algorithm/unwrap_iter.h>
+#include <__assert>
#include <__config>
#include <__debug>
#include <__locale>
-#include <algorithm>
#ifndef __APPLE__
# include <cstdarg>
#endif
diff --git a/contrib/libs/cxxsupp/libcxx/include/map b/contrib/libs/cxxsupp/libcxx/include/map
index 4705db2240d..aaf4b616209 100644
--- a/contrib/libs/cxxsupp/libcxx/include/map
+++ b/contrib/libs/cxxsupp/libcxx/include/map
@@ -528,8 +528,10 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
*/
+#include <__algorithm/equal.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__functional/is_transparent.h>
#include <__iterator/iterator_traits.h>
#include <__node_handle>
diff --git a/contrib/libs/cxxsupp/libcxx/include/optional b/contrib/libs/cxxsupp/libcxx/include/optional
index 21cd695c75c..fd17b0821a3 100644
--- a/contrib/libs/cxxsupp/libcxx/include/optional
+++ b/contrib/libs/cxxsupp/libcxx/include/optional
@@ -158,10 +158,10 @@ template<class T>
*/
+#include <__assert>
#include <__availability>
#include <__concepts/invocable.h>
#include <__config>
-#include <__debug>
#include <compare>
#include <functional>
#include <initializer_list>
@@ -1038,7 +1038,7 @@ public:
#if _LIBCPP_STD_VER > 20
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto and_then(_Func&& __f) & {
using _Up = invoke_result_t<_Func, value_type&>;
static_assert(__is_std_optional<remove_cvref_t<_Up>>::value,
@@ -1049,7 +1049,7 @@ public:
}
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto and_then(_Func&& __f) const& {
using _Up = invoke_result_t<_Func, const value_type&>;
static_assert(__is_std_optional<remove_cvref_t<_Up>>::value,
@@ -1060,7 +1060,7 @@ public:
}
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto and_then(_Func&& __f) && {
using _Up = invoke_result_t<_Func, value_type&&>;
static_assert(__is_std_optional<remove_cvref_t<_Up>>::value,
@@ -1082,7 +1082,7 @@ public:
}
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto transform(_Func&& __f) & {
using _Up = remove_cv_t<invoke_result_t<_Func, value_type&>>;
static_assert(!is_array_v<_Up>, "Result of f(value()) should not be an Array");
@@ -1097,7 +1097,7 @@ public:
}
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto transform(_Func&& __f) const& {
using _Up = remove_cv_t<invoke_result_t<_Func, const value_type&>>;
static_assert(!is_array_v<_Up>, "Result of f(value()) should not be an Array");
@@ -1112,7 +1112,7 @@ public:
}
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto transform(_Func&& __f) && {
using _Up = remove_cv_t<invoke_result_t<_Func, value_type&&>>;
static_assert(!is_array_v<_Up>, "Result of f(std::move(value())) should not be an Array");
@@ -1127,7 +1127,7 @@ public:
}
template<class _Func>
- _LIBCPP_HIDE_FROM_ABI
+ _LIBCPP_HIDE_FROM_ABI _LIBCPP_AVAILABILITY_THROW_BAD_OPTIONAL_ACCESS
constexpr auto transform(_Func&& __f) const&& {
using _Up = remove_cvref_t<invoke_result_t<_Func, const value_type&&>>;
static_assert(!is_array_v<_Up>, "Result of f(std::move(value())) should not be an Array");
diff --git a/contrib/libs/cxxsupp/libcxx/include/queue b/contrib/libs/cxxsupp/libcxx/include/queue
index fe0af168cfb..b8b7ec46d95 100644
--- a/contrib/libs/cxxsupp/libcxx/include/queue
+++ b/contrib/libs/cxxsupp/libcxx/include/queue
@@ -217,11 +217,13 @@ template <class T, class Container, class Compare>
*/
+#include <__algorithm/make_heap.h>
+#include <__algorithm/pop_heap.h>
+#include <__algorithm/push_heap.h>
#include <__config>
#include <__iterator/iterator_traits.h>
#include <__memory/uses_allocator.h>
#include <__utility/forward.h>
-#include <algorithm>
#include <compare>
#include <deque>
#include <functional>
diff --git a/contrib/libs/cxxsupp/libcxx/include/random b/contrib/libs/cxxsupp/libcxx/include/random
index 0c7d490bc82..cf1ac2443af 100644
--- a/contrib/libs/cxxsupp/libcxx/include/random
+++ b/contrib/libs/cxxsupp/libcxx/include/random
@@ -1717,7 +1717,6 @@ class piecewise_linear_distribution
#include <initializer_list>
#include <version>
-#include <algorithm> // for backward compatibility; TODO remove it
#include <cmath> // for backward compatibility; TODO remove it
#include <cstddef> // for backward compatibility; TODO remove it
#include <cstdint> // for backward compatibility; TODO remove it
diff --git a/contrib/libs/cxxsupp/libcxx/include/regex b/contrib/libs/cxxsupp/libcxx/include/regex
index f2b53f17f14..68922f66e4c 100644
--- a/contrib/libs/cxxsupp/libcxx/include/regex
+++ b/contrib/libs/cxxsupp/libcxx/include/regex
@@ -762,8 +762,9 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
} // std
*/
+#include <__algorithm/find.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__iterator/wrap_iter.h>
#include <__locale>
#include <compare>
diff --git a/contrib/libs/cxxsupp/libcxx/include/set b/contrib/libs/cxxsupp/libcxx/include/set
index 337f0f2d5cd..04b6f52c084 100644
--- a/contrib/libs/cxxsupp/libcxx/include/set
+++ b/contrib/libs/cxxsupp/libcxx/include/set
@@ -471,8 +471,10 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
*/
+#include <__algorithm/equal.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__functional/is_transparent.h>
#include <__iterator/iterator_traits.h>
#include <__node_handle>
diff --git a/contrib/libs/cxxsupp/libcxx/include/span b/contrib/libs/cxxsupp/libcxx/include/span
index dfbb23ef652..0101dcb822f 100644
--- a/contrib/libs/cxxsupp/libcxx/include/span
+++ b/contrib/libs/cxxsupp/libcxx/include/span
@@ -127,6 +127,7 @@ template<class R>
*/
+#include <__assert>
#include <__config>
#include <__debug>
#include <__iterator/concepts.h>
@@ -170,7 +171,7 @@ struct __is_std_span : false_type {};
template <class _Tp, size_t _Sz>
struct __is_std_span<span<_Tp, _Sz>> : true_type {};
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <class _Range, class _ElementType>
concept __span_compatible_range =
ranges::contiguous_range<_Range> &&
@@ -262,7 +263,7 @@ public:
{ (void)__count; _LIBCPP_ASSERT(_Extent == __count, "size mismatch in span's constructor (ptr, len)"); }
_LIBCPP_INLINE_VISIBILITY constexpr explicit span(pointer __f, pointer __l) : __data{__f}
{ (void)__l; _LIBCPP_ASSERT(_Extent == distance(__f, __l), "size mismatch in span's constructor (ptr, ptr)"); }
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
_LIBCPP_INLINE_VISIBILITY constexpr span(type_identity_t<element_type> (&__arr)[_Extent]) noexcept : __data{__arr} {}
@@ -276,7 +277,7 @@ public:
_LIBCPP_INLINE_VISIBILITY
constexpr span(const array<_OtherElementType, _Extent>& __arr) noexcept : __data{__arr.data()} {}
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <__span_compatible_range<element_type> _Range>
_LIBCPP_INLINE_VISIBILITY
constexpr explicit span(_Range&& __r) : __data{ranges::data(__r)} {
@@ -298,7 +299,7 @@ public:
: __data{_VSTD::data(__c)} {
_LIBCPP_ASSERT(_Extent == _VSTD::size(__c), "size mismatch in span's constructor (range)");
}
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <class _OtherElementType>
_LIBCPP_INLINE_VISIBILITY
@@ -465,7 +466,7 @@ public:
#else
_LIBCPP_INLINE_VISIBILITY constexpr span(pointer __ptr, size_type __count) : __data{__ptr}, __size{__count} {}
_LIBCPP_INLINE_VISIBILITY constexpr span(pointer __f, pointer __l) : __data{__f}, __size{static_cast<size_t>(distance(__f, __l))} {}
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
template <size_t _Sz>
_LIBCPP_INLINE_VISIBILITY
@@ -481,7 +482,7 @@ public:
_LIBCPP_INLINE_VISIBILITY
constexpr span(const array<_OtherElementType, _Sz>& __arr) noexcept : __data{__arr.data()}, __size{_Sz} {}
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <__span_compatible_range<element_type> _Range>
_LIBCPP_INLINE_VISIBILITY
constexpr span(_Range&& __r) : __data(ranges::data(__r)), __size{ranges::size(__r)} {}
@@ -497,7 +498,7 @@ public:
constexpr span(const _Container& __c,
enable_if_t<__is_span_compatible_container<const _Container, _Tp>::value, nullptr_t> = nullptr)
: __data{_VSTD::data(__c)}, __size{(size_type) _VSTD::size(__c)} {}
-# endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <class _OtherElementType, size_t _OtherExtent>
_LIBCPP_INLINE_VISIBILITY
@@ -630,10 +631,9 @@ auto as_writable_bytes(span<_Tp, _Extent> __s) noexcept
{ return __s.__as_writable_bytes(); }
#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
-// Deduction guides
template<contiguous_iterator _It, class _EndOrSize>
span(_It, _EndOrSize) -> span<remove_reference_t<iter_reference_t<_It>>>;
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
template<class _Tp, size_t _Sz>
span(_Tp (&)[_Sz]) -> span<_Tp, _Sz>;
@@ -644,7 +644,7 @@ template<class _Tp, size_t _Sz>
template<class _Tp, size_t _Sz>
span(const array<_Tp, _Sz>&) -> span<const _Tp, _Sz>;
-#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template<ranges::contiguous_range _Range>
span(_Range&&) -> span<remove_reference_t<ranges::range_reference_t<_Range>>>;
#endif
diff --git a/contrib/libs/cxxsupp/libcxx/include/string b/contrib/libs/cxxsupp/libcxx/include/string
index 0cbe4e06148..d0df0afd160 100644
--- a/contrib/libs/cxxsupp/libcxx/include/string
+++ b/contrib/libs/cxxsupp/libcxx/include/string
@@ -518,11 +518,15 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len ); // C++1
*/
+#include <__algorithm/max.h>
+#include <__algorithm/min.h>
+#include <__algorithm/remove.h>
+#include <__algorithm/remove_if.h>
+#include <__assert>
#include <__config>
#include <__debug>
#include <__ios/fpos.h>
#include <__iterator/wrap_iter.h>
-#include <algorithm>
#include <compare>
#include <cstdio> // EOF
#include <cstdlib>
@@ -2899,6 +2903,10 @@ template <class _CharT, class _Traits, class _Allocator>
typename basic_string<_CharT, _Traits, _Allocator>::iterator
basic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, value_type __c)
{
+ _LIBCPP_DEBUG_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,
+ "string::insert(iterator, character) called with an iterator not"
+ " referring to this string");
+
size_type __ip = static_cast<size_type>(__pos - begin());
size_type __sz = size();
size_type __cap = capacity();
@@ -4182,9 +4190,10 @@ basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,
const basic_string<_CharT, _Traits, _Allocator>& __rhs)
{
- basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator());
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size();
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size();
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
+ _String __r(_String::__alloc_traits::select_on_container_copy_construction(__lhs.get_allocator()));
+ typename _String::size_type __lhs_sz = __lhs.size();
+ typename _String::size_type __rhs_sz = __rhs.size();
__r.__init(__lhs.data(), __lhs_sz, __lhs_sz + __rhs_sz);
__r.append(__rhs.data(), __rhs_sz);
return __r;
@@ -4194,9 +4203,10 @@ template<class _CharT, class _Traits, class _Allocator>
basic_string<_CharT, _Traits, _Allocator>
operator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs)
{
- basic_string<_CharT, _Traits, _Allocator> __r(__rhs.get_allocator());
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = _Traits::length(__lhs);
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size();
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
+ _String __r(_String::__alloc_traits::select_on_container_copy_construction(__rhs.get_allocator()));
+ typename _String::size_type __lhs_sz = _Traits::length(__lhs);
+ typename _String::size_type __rhs_sz = __rhs.size();
__r.__init(__lhs, __lhs_sz, __lhs_sz + __rhs_sz);
__r.append(__rhs.data(), __rhs_sz);
return __r;
@@ -4206,8 +4216,9 @@ template<class _CharT, class _Traits, class _Allocator>
basic_string<_CharT, _Traits, _Allocator>
operator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)
{
- basic_string<_CharT, _Traits, _Allocator> __r(__rhs.get_allocator());
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size();
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
+ _String __r(_String::__alloc_traits::select_on_container_copy_construction(__rhs.get_allocator()));
+ typename _String::size_type __rhs_sz = __rhs.size();
__r.__init(&__lhs, 1, 1 + __rhs_sz);
__r.append(__rhs.data(), __rhs_sz);
return __r;
@@ -4218,9 +4229,10 @@ inline
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs)
{
- basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator());
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size();
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = _Traits::length(__rhs);
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
+ _String __r(_String::__alloc_traits::select_on_container_copy_construction(__lhs.get_allocator()));
+ typename _String::size_type __lhs_sz = __lhs.size();
+ typename _String::size_type __rhs_sz = _Traits::length(__rhs);
__r.__init(__lhs.data(), __lhs_sz, __lhs_sz + __rhs_sz);
__r.append(__rhs, __rhs_sz);
return __r;
@@ -4230,8 +4242,9 @@ template<class _CharT, class _Traits, class _Allocator>
basic_string<_CharT, _Traits, _Allocator>
operator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)
{
- basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator());
- typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size();
+ using _String = basic_string<_CharT, _Traits, _Allocator>;
+ _String __r(_String::__alloc_traits::select_on_container_copy_construction(__lhs.get_allocator()));
+ typename _String::size_type __lhs_sz = __lhs.size();
__r.__init(__lhs.data(), __lhs_sz, __lhs_sz + 1);
__r.push_back(__rhs);
return __r;
diff --git a/contrib/libs/cxxsupp/libcxx/include/string_view b/contrib/libs/cxxsupp/libcxx/include/string_view
index 6d99e6403de..e0e54a08a0c 100644
--- a/contrib/libs/cxxsupp/libcxx/include/string_view
+++ b/contrib/libs/cxxsupp/libcxx/include/string_view
@@ -195,15 +195,15 @@ namespace std {
*/
+#include <__algorithm/min.h>
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__ranges/concepts.h>
#include <__ranges/data.h>
#include <__ranges/enable_borrowed_range.h>
#include <__ranges/enable_view.h>
#include <__ranges/size.h>
#include <__string>
-#include <algorithm>
#include <compare>
#include <iosfwd>
#include <iterator>
@@ -302,9 +302,9 @@ public:
{
_LIBCPP_ASSERT((__end - __begin) >= 0, "std::string_view::string_view(iterator, sentinel) received invalid range");
}
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-#if _LIBCPP_STD_VER > 20 && !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if _LIBCPP_STD_VER > 20 && !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <class _Range>
requires (
!is_same_v<remove_cvref_t<_Range>, basic_string_view> &&
@@ -729,10 +729,10 @@ inline constexpr bool ranges::enable_borrowed_range<basic_string_view<_CharT, _T
#if !defined(_LIBCPP_HAS_NO_CONCEPTS)
template <contiguous_iterator _It, sized_sentinel_for<_It> _End>
basic_string_view(_It, _End) -> basic_string_view<iter_value_t<_It>>;
-#endif
+#endif // !defined(_LIBCPP_HAS_NO_CONCEPTS)
-#if _LIBCPP_STD_VER > 20 && !defined(_LIBCPP_HAS_NO_CONCEPTS)
+#if _LIBCPP_STD_VER > 20 && !defined(_LIBCPP_HAS_NO_CONCEPTS) && !defined(_LIBCPP_HAS_NO_INCOMPLETE_RANGES)
template <ranges::contiguous_range _Range>
basic_string_view(_Range) -> basic_string_view<ranges::range_value_t<_Range>>;
#endif
diff --git a/contrib/libs/cxxsupp/libcxx/include/thread b/contrib/libs/cxxsupp/libcxx/include/thread
index 5681f9d9738..b059cfb4599 100644
--- a/contrib/libs/cxxsupp/libcxx/include/thread
+++ b/contrib/libs/cxxsupp/libcxx/include/thread
@@ -82,8 +82,8 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
*/
+#include <__assert>
#include <__config>
-#include <__debug>
#include <__mutex_base>
#include <__thread/poll_with_backoff.h>
#include <__thread/timed_backoff_policy.h>
@@ -228,11 +228,7 @@ public:
thread() _NOEXCEPT : __t_(_LIBCPP_NULL_THREAD) {}
#ifndef _LIBCPP_CXX03_LANG
template <class _Fp, class ..._Args,
- class = typename enable_if
- <
- !is_same<typename __uncvref<_Fp>::type, thread>::value
- >::type
- >
+ class = __enable_if_t<!is_same<__uncvref_t<_Fp>, thread>::value> >
_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
explicit thread(_Fp&& __f, _Args&&... __args);
#else // _LIBCPP_CXX03_LANG
diff --git a/contrib/libs/cxxsupp/libcxx/include/tuple b/contrib/libs/cxxsupp/libcxx/include/tuple
index 22cfbaa043d..ca6024879fe 100644
--- a/contrib/libs/cxxsupp/libcxx/include/tuple
+++ b/contrib/libs/cxxsupp/libcxx/include/tuple
@@ -1472,9 +1472,10 @@ struct __tuple_cat_return_1
template <class ..._Types, class _Tuple0>
struct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0>
{
- typedef _LIBCPP_NODEBUG typename __tuple_cat_type<tuple<_Types...>,
- typename __make_tuple_types<typename __uncvref<_Tuple0>::type>::type>::type
- type;
+ using type _LIBCPP_NODEBUG = typename __tuple_cat_type<
+ tuple<_Types...>,
+ typename __make_tuple_types<__uncvref_t<_Tuple0> >::type
+ >::type;
};
template <class ..._Types, class _Tuple0, class _Tuple1, class ..._Tuples>
@@ -1482,7 +1483,7 @@ struct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0, _Tuple1, _Tuples...
: public __tuple_cat_return_1<
typename __tuple_cat_type<
tuple<_Types...>,
- typename __make_tuple_types<typename __uncvref<_Tuple0>::type>::type
+ typename __make_tuple_types<__uncvref_t<_Tuple0> >::type
>::type,
__tuple_like<typename remove_reference<_Tuple1>::type>::value,
_Tuple1, _Tuples...>
diff --git a/contrib/libs/cxxsupp/libcxx/include/type_traits b/contrib/libs/cxxsupp/libcxx/include/type_traits
index 9e0ba50b7a8..df31e7654e6 100644
--- a/contrib/libs/cxxsupp/libcxx/include/type_traits
+++ b/contrib/libs/cxxsupp/libcxx/include/type_traits
@@ -1326,34 +1326,26 @@ template <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_rvalue_reference
template <class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type;
#endif
-// __uncvref
-
-template <class _Tp>
-struct __uncvref {
- typedef _LIBCPP_NODEBUG typename remove_cv<typename remove_reference<_Tp>::type>::type type;
-};
-
template <class _Tp>
struct __unconstref {
typedef _LIBCPP_NODEBUG typename remove_const<typename remove_reference<_Tp>::type>::type type;
};
-#ifndef _LIBCPP_CXX03_LANG
template <class _Tp>
-using __uncvref_t _LIBCPP_NODEBUG = typename __uncvref<_Tp>::type;
-#endif
+using __uncvref_t _LIBCPP_NODEBUG = typename remove_cv<typename remove_reference<_Tp>::type>::type;
// __is_same_uncvref
template <class _Tp, class _Up>
-struct __is_same_uncvref : _IsSame<typename __uncvref<_Tp>::type,
- typename __uncvref<_Up>::type> {};
+struct __is_same_uncvref : _IsSame<__uncvref_t<_Tp>, __uncvref_t<_Up> > {};
// C++20, enabled for C++17 in Arcadia
#if _LIBCPP_STD_VER > 14
// remove_cvref - same as __uncvref
template <class _Tp>
-struct remove_cvref : public __uncvref<_Tp> {};
+struct remove_cvref {
+ using type _LIBCPP_NODEBUG = __uncvref_t<_Tp>;
+};
template <class _Tp> using remove_cvref_t = typename remove_cvref<_Tp>::type;
#endif
diff --git a/contrib/libs/cxxsupp/libcxx/include/unordered_map b/contrib/libs/cxxsupp/libcxx/include/unordered_map
index f0f5d1c800a..c8545489507 100644
--- a/contrib/libs/cxxsupp/libcxx/include/unordered_map
+++ b/contrib/libs/cxxsupp/libcxx/include/unordered_map
@@ -514,6 +514,8 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
*/
+#include <__algorithm/is_permutation.h>
+#include <__assert>
#include <__config>
#include <__debug>
#include <__functional/is_transparent.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/unordered_set b/contrib/libs/cxxsupp/libcxx/include/unordered_set
index b3a653f4bcd..2f902cc7934 100644
--- a/contrib/libs/cxxsupp/libcxx/include/unordered_set
+++ b/contrib/libs/cxxsupp/libcxx/include/unordered_set
@@ -459,6 +459,8 @@ template <class Value, class Hash, class Pred, class Alloc>
*/
+#include <__algorithm/is_permutation.h>
+#include <__assert>
#include <__config>
#include <__debug>
#include <__functional/is_transparent.h>
diff --git a/contrib/libs/cxxsupp/libcxx/include/valarray b/contrib/libs/cxxsupp/libcxx/include/valarray
index b2255f340e9..90740f2e563 100644
--- a/contrib/libs/cxxsupp/libcxx/include/valarray
+++ b/contrib/libs/cxxsupp/libcxx/include/valarray
@@ -341,8 +341,14 @@ template <class T> unspecified2 end(const valarray<T>& v);
*/
+#include <__algorithm/copy.h>
+#include <__algorithm/count.h>
+#include <__algorithm/fill.h>
+#include <__algorithm/max_element.h>
+#include <__algorithm/min.h>
+#include <__algorithm/min_element.h>
+#include <__algorithm/unwrap_iter.h>
#include <__config>
-#include <algorithm>
#include <cmath>
#include <cstddef>
#include <functional>
diff --git a/contrib/libs/cxxsupp/libcxx/include/vector b/contrib/libs/cxxsupp/libcxx/include/vector
index 47befbfefd8..916eaa75b63 100644
--- a/contrib/libs/cxxsupp/libcxx/include/vector
+++ b/contrib/libs/cxxsupp/libcxx/include/vector
@@ -271,14 +271,23 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
*/
+#include <__algorithm/copy.h>
+#include <__algorithm/equal.h>
+#include <__algorithm/fill_n.h>
+#include <__algorithm/lexicographical_compare.h>
+#include <__algorithm/remove.h>
+#include <__algorithm/remove_if.h>
+#include <__algorithm/rotate.h>
+#include <__algorithm/unwrap_iter.h>
+#include <__assert>
#include <__bit_reference>
#include <__config>
#include <__debug>
+#include <__functional/hash.h>
#include <__iterator/iterator_traits.h>
#include <__iterator/wrap_iter.h>
#include <__split_buffer>
#include <__utility/forward.h>
-#include <algorithm>
#include <climits>
#include <compare>
#include <cstdlib>
diff --git a/contrib/libs/cxxsupp/libcxx/include/version b/contrib/libs/cxxsupp/libcxx/include/version
index 5b595e35cba..25d112af187 100644
--- a/contrib/libs/cxxsupp/libcxx/include/version
+++ b/contrib/libs/cxxsupp/libcxx/include/version
@@ -404,7 +404,7 @@ __cpp_lib_void_t 201411L <type_traits>
// # define __cpp_lib_reference_from_temporary 202202L
// # define __cpp_lib_spanstream 202106L
// # define __cpp_lib_stacktrace 202011L
-# define __cpp_lib_stdatomic_h 202011L
+// # define __cpp_lib_stdatomic_h 202011L
# define __cpp_lib_string_contains 202011L
# define __cpp_lib_string_resize_and_overwrite 202110L
# define __cpp_lib_to_underlying 202102L
diff --git a/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp b/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp
index 4cc7c2725aa..decc8419fa8 100644
--- a/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/algorithm.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "algorithm"
+#include <algorithm>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/any.cpp b/contrib/libs/cxxsupp/libcxx/src/any.cpp
index 2939fe29969..9a101b44a71 100644
--- a/contrib/libs/cxxsupp/libcxx/src/any.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/any.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "any"
+#include <any>
namespace std {
const char* bad_any_cast::what() const noexcept {
diff --git a/contrib/libs/cxxsupp/libcxx/src/assert.cpp b/contrib/libs/cxxsupp/libcxx/src/assert.cpp
new file mode 100644
index 00000000000..21a3863cd05
--- /dev/null
+++ b/contrib/libs/cxxsupp/libcxx/src/assert.cpp
@@ -0,0 +1,38 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include <__assert>
+#include <__config>
+#include <cstdio>
+#include <cstdlib>
+#include <string>
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+std::string __libcpp_debug_info::what() const {
+ string msg = __file_;
+ msg += ":" + std::to_string(__line_) + ": _LIBCPP_ASSERT '";
+ msg += __pred_;
+ msg += "' failed. ";
+ msg += __msg_;
+ return msg;
+}
+
+_LIBCPP_NORETURN void __libcpp_abort_debug_function(__libcpp_debug_info const& info) {
+ std::fprintf(stderr, "%s\n", info.what().c_str());
+ std::abort();
+}
+
+_LIBCPP_CONSTINIT __libcpp_debug_function_type __libcpp_debug_function = __libcpp_abort_debug_function;
+
+bool __libcpp_set_debug_function(__libcpp_debug_function_type __func) {
+ __libcpp_debug_function = __func;
+ return true;
+}
+
+_LIBCPP_END_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/bind.cpp b/contrib/libs/cxxsupp/libcxx/src/bind.cpp
index a54df2c0dd7..0e217e5fc5d 100644
--- a/contrib/libs/cxxsupp/libcxx/src/bind.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/bind.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "functional"
+#include <functional>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/charconv.cpp b/contrib/libs/cxxsupp/libcxx/src/charconv.cpp
index 60ec3eccc94..9537b42de7f 100644
--- a/contrib/libs/cxxsupp/libcxx/src/charconv.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/charconv.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "charconv"
+#include <charconv>
#include <string.h>
#include "include/ryu/digit_table.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/chrono.cpp b/contrib/libs/cxxsupp/libcxx/src/chrono.cpp
index 4f2d51042ff..0af89d6a526 100644
--- a/contrib/libs/cxxsupp/libcxx/src/chrono.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/chrono.cpp
@@ -12,9 +12,9 @@
#define _LARGE_TIME_API
#endif
-#include "chrono"
-#include "cerrno" // errno
-#include "system_error" // __throw_system_error
+#include <cerrno> // errno
+#include <chrono>
+#include <system_error> // __throw_system_error
#if defined(__MVS__)
#include <__support/ibm/gettod_zos.h> // gettimeofdayMonotonic
diff --git a/contrib/libs/cxxsupp/libcxx/src/condition_variable.cpp b/contrib/libs/cxxsupp/libcxx/src/condition_variable.cpp
index 0ade56b4843..b17c4cf6458 100644
--- a/contrib/libs/cxxsupp/libcxx/src/condition_variable.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/condition_variable.cpp
@@ -6,19 +6,21 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
+#include <__config>
#ifndef _LIBCPP_HAS_NO_THREADS
-#include "condition_variable"
-#include "thread"
-#include "system_error"
-#include "__undef_macros"
+#include <condition_variable>
+#include <thread>
+#include <system_error>
#if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-#pragma comment(lib, "pthread")
+# pragma comment(lib, "pthread")
#endif
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
_LIBCPP_BEGIN_NAMESPACE_STD
// ~condition_variable is defined elsewhere.
@@ -90,4 +92,6 @@ notify_all_at_thread_exit(condition_variable& cond, unique_lock<mutex> lk)
_LIBCPP_END_NAMESPACE_STD
+_LIBCPP_POP_MACROS
+
#endif // !_LIBCPP_HAS_NO_THREADS
diff --git a/contrib/libs/cxxsupp/libcxx/src/condition_variable_destructor.cpp b/contrib/libs/cxxsupp/libcxx/src/condition_variable_destructor.cpp
index 350e6b77f24..c217a09394f 100644
--- a/contrib/libs/cxxsupp/libcxx/src/condition_variable_destructor.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/condition_variable_destructor.cpp
@@ -11,8 +11,8 @@
// On some platforms ~condition_variable has been made trivial and the
// definition is only provided for ABI compatibility.
-#include "__config"
-#include "__threading_support"
+#include <__config>
+#include <__threading_support>
#if !defined(_LIBCPP_HAS_NO_THREADS)
# if _LIBCPP_ABI_VERSION == 1 || !defined(_LIBCPP_HAS_TRIVIAL_CONDVAR_DESTRUCTION)
diff --git a/contrib/libs/cxxsupp/libcxx/src/debug.cpp b/contrib/libs/cxxsupp/libcxx/src/debug.cpp
index ae31c91d154..8f1d328f0e0 100644
--- a/contrib/libs/cxxsupp/libcxx/src/debug.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/debug.cpp
@@ -6,43 +6,24 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
-#include "__debug"
-#include "functional"
-#include "algorithm"
-#include "string"
-#include "cstdio"
-#include "__hash_table"
+#include <__assert>
+#include <__config>
+#include <__debug>
+#include <__hash_table>
+#include <algorithm>
+#include <cstdio>
+#include <functional>
+#include <string>
+
#ifndef _LIBCPP_HAS_NO_THREADS
-#include "mutex"
-#if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-#pragma comment(lib, "pthread")
-#endif
+# include <mutex>
+# if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
+# pragma comment(lib, "pthread")
+# endif
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
-std::string __libcpp_debug_info::what() const {
- string msg = __file_;
- msg += ":" + to_string(__line_) + ": _LIBCPP_ASSERT '";
- msg += __pred_;
- msg += "' failed. ";
- msg += __msg_;
- return msg;
-}
-_LIBCPP_NORETURN void __libcpp_abort_debug_function(__libcpp_debug_info const& info) {
- std::fprintf(stderr, "%s\n", info.what().c_str());
- std::abort();
-}
-
-_LIBCPP_SAFE_STATIC __libcpp_debug_function_type
- __libcpp_debug_function = __libcpp_abort_debug_function;
-
-bool __libcpp_set_debug_function(__libcpp_debug_function_type __func) {
- __libcpp_debug_function = __func;
- return true;
-}
-
_LIBCPP_FUNC_VIS
__libcpp_db*
__get_db()
diff --git a/contrib/libs/cxxsupp/libcxx/src/exception.cpp b/contrib/libs/cxxsupp/libcxx/src/exception.cpp
index d5e6a4a76ff..915ab3fb648 100644
--- a/contrib/libs/cxxsupp/libcxx/src/exception.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/exception.cpp
@@ -6,9 +6,9 @@
//
//===----------------------------------------------------------------------===//
-#include "exception"
-#include "new"
-#include "typeinfo"
+#include <exception>
+#include <new>
+#include <typeinfo>
#if defined(LIBCXX_BUILDING_LIBCXXRT) || defined(LIBCXX_BUILDING_LIBCXXABI)
#include <cxxabi.h>
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/directory_iterator.cpp b/contrib/libs/cxxsupp/libcxx/src/filesystem/directory_iterator.cpp
index fa793f68295..8b91929df87 100644
--- a/contrib/libs/cxxsupp/libcxx/src/filesystem/directory_iterator.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/filesystem/directory_iterator.cpp
@@ -6,10 +6,11 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
-#include "filesystem"
-#include "stack"
+#include <__assert>
+#include <__config>
#include <errno.h>
+#include <filesystem>
+#include <stack>
#include "filesystem_common.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/filesystem_common.h b/contrib/libs/cxxsupp/libcxx/src/filesystem/filesystem_common.h
index 4e117c3f194..dffce1895cd 100644
--- a/contrib/libs/cxxsupp/libcxx/src/filesystem/filesystem_common.h
+++ b/contrib/libs/cxxsupp/libcxx/src/filesystem/filesystem_common.h
@@ -9,15 +9,16 @@
#ifndef FILESYSTEM_COMMON_H
#define FILESYSTEM_COMMON_H
-#include "__config"
-#include "array"
-#include "chrono"
-#include "climits"
-#include "cstdarg"
-#include "ctime"
-#include "filesystem"
-#include "ratio"
-#include "system_error"
+#include <__assert>
+#include <__config>
+#include <array>
+#include <chrono>
+#include <climits>
+#include <cstdarg>
+#include <ctime>
+#include <filesystem>
+#include <ratio>
+#include <system_error>
#include <utility>
#if defined(_LIBCPP_WIN32API)
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp b/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
index 39777a316a0..e19d042f878 100644
--- a/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/filesystem/operations.cpp
@@ -6,15 +6,16 @@
//
//===----------------------------------------------------------------------===//
+#include <__assert>
#include <__utility/unreachable.h>
-#include "filesystem"
-#include "array"
-#include "iterator"
-#include "string_view"
-#include "type_traits"
-#include "vector"
-#include "cstdlib"
-#include "climits"
+#include <array>
+#include <climits>
+#include <cstdlib>
+#include <filesystem>
+#include <iterator>
+#include <string_view>
+#include <type_traits>
+#include <vector>
#include "filesystem_common.h"
@@ -40,7 +41,7 @@
# include <copyfile.h>
# define _LIBCPP_FILESYSTEM_USE_COPYFILE
#else
-# include "fstream"
+# include <fstream>
# define _LIBCPP_FILESYSTEM_USE_FSTREAM
#endif
diff --git a/contrib/libs/cxxsupp/libcxx/src/filesystem/posix_compat.h b/contrib/libs/cxxsupp/libcxx/src/filesystem/posix_compat.h
index f5c8ec39df2..36116ec5a39 100644
--- a/contrib/libs/cxxsupp/libcxx/src/filesystem/posix_compat.h
+++ b/contrib/libs/cxxsupp/libcxx/src/filesystem/posix_compat.h
@@ -23,7 +23,8 @@
#ifndef POSIX_COMPAT_H
#define POSIX_COMPAT_H
-#include "filesystem"
+#include <__assert>
+#include <filesystem>
#include "filesystem_common.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/format.cpp b/contrib/libs/cxxsupp/libcxx/src/format.cpp
index 2ebec28247e..cdbcbf8b058 100644
--- a/contrib/libs/cxxsupp/libcxx/src/format.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/format.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "format"
+#include <format>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/functional.cpp b/contrib/libs/cxxsupp/libcxx/src/functional.cpp
index d8cfaa70337..ca1079cdd88 100644
--- a/contrib/libs/cxxsupp/libcxx/src/functional.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/functional.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "functional"
+#include <functional>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/future.cpp b/contrib/libs/cxxsupp/libcxx/src/future.cpp
index 07ae9389ec2..cdaa9382753 100644
--- a/contrib/libs/cxxsupp/libcxx/src/future.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/future.cpp
@@ -6,12 +6,12 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
+#include <__config>
#ifndef _LIBCPP_HAS_NO_THREADS
-#include "future"
-#include "string"
+#include <future>
+#include <string>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/hash.cpp b/contrib/libs/cxxsupp/libcxx/src/hash.cpp
index daf276f5b7d..96cbd38f4dd 100644
--- a/contrib/libs/cxxsupp/libcxx/src/hash.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/hash.cpp
@@ -6,10 +6,10 @@
//
//===----------------------------------------------------------------------===//
-#include "__hash_table"
-#include "algorithm"
-#include "stdexcept"
-#include "type_traits"
+#include <__hash_table>
+#include <algorithm>
+#include <stdexcept>
+#include <type_traits>
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wtautological-constant-out-of-range-compare")
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/atomic_support.h b/contrib/libs/cxxsupp/libcxx/src/include/atomic_support.h
index 5a745a2f009..3e73f2ce27f 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/atomic_support.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/atomic_support.h
@@ -9,8 +9,8 @@
#ifndef ATOMIC_SUPPORT_H
#define ATOMIC_SUPPORT_H
-#include "__config"
-#include "memory" // for __libcpp_relaxed_load
+#include <__config>
+#include <memory> // for __libcpp_relaxed_load
#if defined(__clang__) && __has_builtin(__atomic_load_n) \
&& __has_builtin(__atomic_store_n) \
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/common.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/common.h
index 52913120f10..c24115c2336 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/common.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/common.h
@@ -42,6 +42,7 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
+#include <__assert>
#include "__config"
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed.h
index e495c11b1d4..b8862de251c 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed.h
@@ -42,8 +42,8 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
-#include "cstdint"
+#include <__config>
+#include <cstdint>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed_full_table.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed_full_table.h
index 7181cd8cf6e..a63d6f2d161 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed_full_table.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2fixed_full_table.h
@@ -42,7 +42,7 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
+#include <__config>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s.h
index 15d50fd1ee5..3d9f10c0f15 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s.h
@@ -42,7 +42,7 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
+#include <__config>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_full_table.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_full_table.h
index 106fef0015c..96307f69862 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_full_table.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_full_table.h
@@ -42,7 +42,7 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
+#include <__config>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_intrinsics.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_intrinsics.h
index 756fe1e831e..96e8fb7957f 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_intrinsics.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/d2s_intrinsics.h
@@ -42,7 +42,8 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
+#include <__assert>
+#include <__config>
#include "include/ryu/ryu.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/digit_table.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/digit_table.h
index 3962f669314..e4ee94ce26c 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/digit_table.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/digit_table.h
@@ -42,7 +42,7 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
+#include <__config>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/f2s.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/f2s.h
index 80fdcd458b7..be304c2f9c6 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/f2s.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/f2s.h
@@ -42,7 +42,7 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
+#include <__config>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/ryu/ryu.h b/contrib/libs/cxxsupp/libcxx/src/include/ryu/ryu.h
index cfd5303472c..aa2be6d0880 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/ryu/ryu.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/ryu/ryu.h
@@ -44,14 +44,15 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__charconv/chars_format.h"
-#include "__charconv/to_chars_result.h"
-#include "__config"
-#include "__debug"
-#include "__errc"
-#include "cstdint"
-#include "cstring"
-#include "type_traits"
+#include <__charconv/chars_format.h>
+#include <__charconv/to_chars_result.h>
+#include <__config>
+#include <__debug>
+#include <__errc>
+#include <cstdint>
+#include <cstring>
+#include <type_traits>
+
#include "include/ryu/f2s.h"
#include "include/ryu/d2s.h"
#include "include/ryu/d2fixed.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/include/to_chars_floating_point.h b/contrib/libs/cxxsupp/libcxx/src/include/to_chars_floating_point.h
index 081d671fc59..0bb45d0b979 100644
--- a/contrib/libs/cxxsupp/libcxx/src/include/to_chars_floating_point.h
+++ b/contrib/libs/cxxsupp/libcxx/src/include/to_chars_floating_point.h
@@ -17,16 +17,18 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__algorithm/find.h"
-#include "__algorithm/find_if.h"
-#include "__algorithm/lower_bound.h"
-#include "__algorithm/min.h"
-#include "__config"
-#include "__iterator/access.h"
-#include "__iterator/size.h"
-#include "bit"
-#include "cfloat"
-#include "climits"
+#include <__algorithm/find.h>
+#include <__algorithm/find_if.h>
+#include <__algorithm/lower_bound.h>
+#include <__algorithm/min.h>
+#include <__assert>
+#include <__config>
+#include <__iterator/access.h>
+#include <__iterator/size.h>
+#include <bit>
+#include <cfloat>
+#include <climits>
+
#include "include/ryu/ryu.h"
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/ios.cpp b/contrib/libs/cxxsupp/libcxx/src/ios.cpp
index 56fbcca417a..218b27f1a6b 100644
--- a/contrib/libs/cxxsupp/libcxx/src/ios.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/ios.cpp
@@ -6,20 +6,20 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
-
-#include "ios"
-
+#include <__config>
+#include <__locale>
+#include <algorithm>
+#include <ios>
+#include <limits>
+#include <memory>
+#include <new>
#include <stdlib.h>
+#include <string>
-#include "__locale"
-#include "algorithm"
#include "include/config_elast.h"
-#include "limits"
-#include "memory"
-#include "new"
-#include "string"
-#include "__undef_macros"
+
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
_LIBCPP_BEGIN_NAMESPACE_STD
@@ -439,3 +439,5 @@ ios_base::sync_with_stdio(bool sync)
}
_LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
diff --git a/contrib/libs/cxxsupp/libcxx/src/ios.instantiations.cpp b/contrib/libs/cxxsupp/libcxx/src/ios.instantiations.cpp
index e1189d0b5bd..2ff7057fa66 100644
--- a/contrib/libs/cxxsupp/libcxx/src/ios.instantiations.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/ios.instantiations.cpp
@@ -6,14 +6,13 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
-#include "fstream"
-#include "ios"
-#include "istream"
-#include "ostream"
-#include "sstream"
-#include "streambuf"
-
+#include <__config>
+#include <fstream>
+#include <ios>
+#include <istream>
+#include <ostream>
+#include <sstream>
+#include <streambuf>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/iostream.cpp b/contrib/libs/cxxsupp/libcxx/src/iostream.cpp
index 71c8dda834c..5a95eb7aefe 100644
--- a/contrib/libs/cxxsupp/libcxx/src/iostream.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/iostream.cpp
@@ -6,10 +6,10 @@
//
//===----------------------------------------------------------------------===//
-#include "__std_stream"
-#include "__locale"
-#include "string"
-#include "new"
+#include <__locale>
+#include <__std_stream>
+#include <new>
+#include <string>
#define _str(s) #s
#define str(s) _str(s)
diff --git a/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp b/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
index 34f5613ae25..5d2b04c121a 100644
--- a/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/legacy_pointer_safety.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
+#include <__config>
#include <memory>
// Support for garbage collection was removed in C++23 by https://wg21.link/P2186R2. Libc++ implements
diff --git a/contrib/libs/cxxsupp/libcxx/src/locale.cpp b/contrib/libs/cxxsupp/libcxx/src/locale.cpp
index 92fd8d74451..3f1bbd0730e 100644
--- a/contrib/libs/cxxsupp/libcxx/src/locale.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/locale.cpp
@@ -13,20 +13,20 @@
#endif
#include <__utility/unreachable.h>
-#include "algorithm"
-#include "clocale"
-#include "codecvt"
-#include "cstdio"
-#include "cstdlib"
-#include "cstring"
-#include "locale"
-#include "string"
-#include "type_traits"
-#include "typeinfo"
-#include "vector"
+#include <algorithm>
+#include <clocale>
+#include <codecvt>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <locale>
+#include <string>
+#include <type_traits>
+#include <typeinfo>
+#include <vector>
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
-# include "cwctype"
+# include <cwctype>
#endif
#if defined(_AIX)
@@ -44,12 +44,14 @@
#include "atomic"
#include "include/sso_allocator.h"
-#include "__undef_macros"
// On Linux, wint_t and wchar_t have different signed-ness, and this causes
// lots of noise in the build log, but no bugs that I know of.
_LIBCPP_CLANG_DIAGNOSTIC_IGNORED("-Wsign-conversion")
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
_LIBCPP_BEGIN_NAMESPACE_STD
struct __libcpp_unique_locale {
@@ -125,11 +127,6 @@ _LIBCPP_NORETURN static void __throw_runtime_error(const string &msg)
}
-#if defined(_AIX)
-// Set priority to INT_MIN + 256 + 150
-# pragma priority ( -2147483242 )
-#endif
-
const locale::category locale::none;
const locale::category locale::collate;
const locale::category locale::ctype;
@@ -6611,3 +6608,5 @@ template class _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS codecvt_byname<char32_t,
#endif
_LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
diff --git a/contrib/libs/cxxsupp/libcxx/src/memory.cpp b/contrib/libs/cxxsupp/libcxx/src/memory.cpp
index 78082e18d0d..c836533949c 100644
--- a/contrib/libs/cxxsupp/libcxx/src/memory.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/memory.cpp
@@ -6,14 +6,16 @@
//
//===----------------------------------------------------------------------===//
-#include "memory"
+#include <memory>
+
#ifndef _LIBCPP_HAS_NO_THREADS
-# include "mutex"
-# include "thread"
-# if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-# pragma comment(lib, "pthread")
-# endif
+# include <mutex>
+# include <thread>
+# if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
+# pragma comment(lib, "pthread")
+# endif
#endif
+
#if !defined(_LIBCPP_HAS_NO_THREADS)
#include <atomic>
#else
@@ -164,8 +166,8 @@ __shared_weak_count::__get_deleter(const type_info&) const noexcept
#if !defined(_LIBCPP_HAS_NO_THREADS)
-_LIBCPP_SAFE_STATIC static const std::size_t __sp_mut_count = 16;
-_LIBCPP_SAFE_STATIC static __libcpp_mutex_t mut_back[__sp_mut_count] =
+static constexpr std::size_t __sp_mut_count = 16;
+static _LIBCPP_CONSTINIT __libcpp_mutex_t mut_back[__sp_mut_count] =
{
_LIBCPP_MUTEX_INITIALIZER, _LIBCPP_MUTEX_INITIALIZER, _LIBCPP_MUTEX_INITIALIZER, _LIBCPP_MUTEX_INITIALIZER,
_LIBCPP_MUTEX_INITIALIZER, _LIBCPP_MUTEX_INITIALIZER, _LIBCPP_MUTEX_INITIALIZER, _LIBCPP_MUTEX_INITIALIZER,
@@ -203,8 +205,7 @@ __sp_mut::unlock() noexcept
__sp_mut&
__get_sp_mut(const void* p)
{
- static __sp_mut muts[__sp_mut_count]
- {
+ static _LIBCPP_CONSTINIT __sp_mut muts[__sp_mut_count] = {
&mut_back[ 0], &mut_back[ 1], &mut_back[ 2], &mut_back[ 3],
&mut_back[ 4], &mut_back[ 5], &mut_back[ 6], &mut_back[ 7],
&mut_back[ 8], &mut_back[ 9], &mut_back[10], &mut_back[11],
diff --git a/contrib/libs/cxxsupp/libcxx/src/mutex.cpp b/contrib/libs/cxxsupp/libcxx/src/mutex.cpp
index b9028e64bbc..c247225e31a 100644
--- a/contrib/libs/cxxsupp/libcxx/src/mutex.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/mutex.cpp
@@ -6,21 +6,26 @@
//
//===----------------------------------------------------------------------===//
-#include "mutex"
-#include "limits"
-#include "system_error"
+#include <__assert>
+#include <limits>
+#include <mutex>
+#include <system_error>
+
#if !defined(_LIBCPP_ABI_MICROSOFT)
#include "include/atomic_support.h"
#endif
-#include "__undef_macros"
#ifndef _LIBCPP_HAS_NO_THREADS
-#if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-#pragma comment(lib, "pthread")
-#endif
+# if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
+# pragma comment(lib, "pthread")
+# endif
#endif
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
+
_LIBCPP_BEGIN_NAMESPACE_STD
+
#ifndef _LIBCPP_HAS_NO_THREADS
const defer_lock_t defer_lock{};
@@ -198,8 +203,8 @@ recursive_timed_mutex::unlock() noexcept
// keep in sync with: 7741191.
#ifndef _LIBCPP_HAS_NO_THREADS
-_LIBCPP_SAFE_STATIC static __libcpp_mutex_t mut = _LIBCPP_MUTEX_INITIALIZER;
-_LIBCPP_SAFE_STATIC static __libcpp_condvar_t cv = _LIBCPP_CONDVAR_INITIALIZER;
+static _LIBCPP_CONSTINIT __libcpp_mutex_t mut = _LIBCPP_MUTEX_INITIALIZER;
+static _LIBCPP_CONSTINIT __libcpp_condvar_t cv = _LIBCPP_CONDVAR_INITIALIZER;
#endif
#ifdef _LIBCPP_ABI_MICROSOFT
@@ -277,3 +282,5 @@ void __call_once(volatile once_flag::_State_type& flag, void* arg,
}
_LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
diff --git a/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp b/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp
index e8b1e42dd54..6850b6e6f49 100644
--- a/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/mutex_destructor.cpp
@@ -16,13 +16,13 @@
// we re-declare the entire class in this file instead of using
// _LIBCPP_BUILDING_LIBRARY to change the definition in the headers.
-#include "__config"
-#include "__threading_support"
+#include <__config>
+#include <__threading_support>
#if !defined(_LIBCPP_HAS_NO_THREADS)
-#if _LIBCPP_ABI_VERSION == 1 || !defined(_LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION)
-#define NEEDS_MUTEX_DESTRUCTOR
-#endif
+# if _LIBCPP_ABI_VERSION == 1 || !defined(_LIBCPP_HAS_TRIVIAL_MUTEX_DESTRUCTION)
+# define NEEDS_MUTEX_DESTRUCTOR
+# endif
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/new.cpp b/contrib/libs/cxxsupp/libcxx/src/new.cpp
index 4f19000b531..b7e28281585 100644
--- a/contrib/libs/cxxsupp/libcxx/src/new.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/new.cpp
@@ -6,10 +6,9 @@
//
//===----------------------------------------------------------------------===//
+#include <new>
#include <stdlib.h>
-#include "new"
-
#if defined(_LIBCPP_ABI_MICROSOFT)
# if !defined(_LIBCPP_ABI_VCRUNTIME)
# include "support/runtime/new_handler_fallback.ipp"
diff --git a/contrib/libs/cxxsupp/libcxx/src/optional.cpp b/contrib/libs/cxxsupp/libcxx/src/optional.cpp
index 251ebe2e682..ac1a0a5b5e8 100644
--- a/contrib/libs/cxxsupp/libcxx/src/optional.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/optional.cpp
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#include "optional"
-#include "__availability"
+#include <__availability>
+#include <optional>
namespace std
{
diff --git a/contrib/libs/cxxsupp/libcxx/src/random.cpp b/contrib/libs/cxxsupp/libcxx/src/random.cpp
index 5d3da335e46..17aaeedfebe 100644
--- a/contrib/libs/cxxsupp/libcxx/src/random.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/random.cpp
@@ -13,9 +13,9 @@
# define _CRT_RAND_S
#endif // defined(_LIBCPP_USING_WIN32_RANDOM)
-#include "limits"
-#include "random"
-#include "system_error"
+#include <limits>
+#include <random>
+#include <system_error>
#if defined(__sun__)
# define rename solaris_headers_are_broken
diff --git a/contrib/libs/cxxsupp/libcxx/src/random_shuffle.cpp b/contrib/libs/cxxsupp/libcxx/src/random_shuffle.cpp
index df9b7d53c84..a673035b485 100644
--- a/contrib/libs/cxxsupp/libcxx/src/random_shuffle.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/random_shuffle.cpp
@@ -6,19 +6,20 @@
//
//===----------------------------------------------------------------------===//
-#include "algorithm"
-#include "random"
+#include <algorithm>
+#include <random>
+
#ifndef _LIBCPP_HAS_NO_THREADS
-# include "mutex"
-# if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-# pragma comment(lib, "pthread")
-# endif
+# include <mutex>
+# if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
+# pragma comment(lib, "pthread")
+# endif
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
#ifndef _LIBCPP_HAS_NO_THREADS
-_LIBCPP_SAFE_STATIC static __libcpp_mutex_t __rs_mut = _LIBCPP_MUTEX_INITIALIZER;
+static _LIBCPP_CONSTINIT __libcpp_mutex_t __rs_mut = _LIBCPP_MUTEX_INITIALIZER;
#endif
unsigned __rs_default::__c_ = 0;
diff --git a/contrib/libs/cxxsupp/libcxx/src/regex.cpp b/contrib/libs/cxxsupp/libcxx/src/regex.cpp
index 16ad8f0effd..e53d3241869 100644
--- a/contrib/libs/cxxsupp/libcxx/src/regex.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/regex.cpp
@@ -6,9 +6,9 @@
//
//===----------------------------------------------------------------------===//
-#include "regex"
-#include "algorithm"
-#include "iterator"
+#include <algorithm>
+#include <iterator>
+#include <regex>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/ryu/d2fixed.cpp b/contrib/libs/cxxsupp/libcxx/src/ryu/d2fixed.cpp
index 699f9158f4c..c1a1f6cf9e0 100644
--- a/contrib/libs/cxxsupp/libcxx/src/ryu/d2fixed.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/ryu/d2fixed.cpp
@@ -39,10 +39,11 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
-#include "charconv"
-#include "cstring"
-#include "system_error"
+#include <__assert>
+#include <__config>
+#include <charconv>
+#include <cstring>
+#include <system_error>
#include "include/ryu/common.h"
#include "include/ryu/d2fixed.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/ryu/d2s.cpp b/contrib/libs/cxxsupp/libcxx/src/ryu/d2s.cpp
index 510b4b8aa3a..245c2eb5908 100644
--- a/contrib/libs/cxxsupp/libcxx/src/ryu/d2s.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/ryu/d2s.cpp
@@ -39,8 +39,9 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
-#include "charconv"
+#include <__assert>
+#include <__config>
+#include <charconv>
#include "include/ryu/common.h"
#include "include/ryu/d2fixed.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/ryu/f2s.cpp b/contrib/libs/cxxsupp/libcxx/src/ryu/f2s.cpp
index 7e10b498367..3bcfe462c8f 100644
--- a/contrib/libs/cxxsupp/libcxx/src/ryu/f2s.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/ryu/f2s.cpp
@@ -39,8 +39,9 @@
// Avoid formatting to keep the changes with the original code minimal.
// clang-format off
-#include "__config"
-#include "charconv"
+#include <__assert>
+#include <__config>
+#include <charconv>
#include "include/ryu/common.h"
#include "include/ryu/d2fixed.h"
diff --git a/contrib/libs/cxxsupp/libcxx/src/shared_mutex.cpp b/contrib/libs/cxxsupp/libcxx/src/shared_mutex.cpp
index 6a5a738a676..deb3ced014c 100644
--- a/contrib/libs/cxxsupp/libcxx/src/shared_mutex.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/shared_mutex.cpp
@@ -6,12 +6,13 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
+#include <__config>
+
#ifndef _LIBCPP_HAS_NO_THREADS
-#include "shared_mutex"
+#include <shared_mutex>
#if defined(__ELF__) && defined(_LIBCPP_LINK_PTHREAD_LIB)
-#pragma comment(lib, "pthread")
+# pragma comment(lib, "pthread")
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/stdexcept.cpp b/contrib/libs/cxxsupp/libcxx/src/stdexcept.cpp
index b9c89703f3e..d08b6740db1 100644
--- a/contrib/libs/cxxsupp/libcxx/src/stdexcept.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/stdexcept.cpp
@@ -6,11 +6,10 @@
//
//===----------------------------------------------------------------------===//
-#include "stdexcept"
-#include "new"
-#include "string"
-#include "system_error"
-
+#include <new>
+#include <stdexcept>
+#include <string>
+#include <system_error>
#ifdef _LIBCPP_ABI_VCRUNTIME
#include "support/runtime/stdexcept_vcruntime.ipp"
diff --git a/contrib/libs/cxxsupp/libcxx/src/string.cpp b/contrib/libs/cxxsupp/libcxx/src/string.cpp
index 3cde2e9005b..9d1de0cf6ca 100644
--- a/contrib/libs/cxxsupp/libcxx/src/string.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/string.cpp
@@ -6,17 +6,17 @@
//
//===----------------------------------------------------------------------===//
-#include "string"
-#include "charconv"
-#include "cstdlib"
-#include "cerrno"
-#include "limits"
-#include "stdexcept"
+#include <__assert>
+#include <cerrno>
+#include <charconv>
+#include <cstdlib>
+#include <limits>
+#include <stdexcept>
#include <stdio.h>
-#include "__debug"
+#include <string>
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
-# include "cwchar"
+# include <cwchar>
#endif
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/strstream.cpp b/contrib/libs/cxxsupp/libcxx/src/strstream.cpp
index fe7e2d41206..87c235a97a2 100644
--- a/contrib/libs/cxxsupp/libcxx/src/strstream.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/strstream.cpp
@@ -6,14 +6,16 @@
//
//===----------------------------------------------------------------------===//
+#include <__assert>
#include <__utility/unreachable.h>
-#include "strstream"
-#include "algorithm"
-#include "climits"
-#include "cstring"
-#include "cstdlib"
-#include "__debug"
-#include "__undef_macros"
+#include <algorithm>
+#include <climits>
+#include <cstdlib>
+#include <cstring>
+#include <strstream>
+
+_LIBCPP_PUSH_MACROS
+#include <__undef_macros>
_LIBCPP_BEGIN_NAMESPACE_STD
@@ -334,3 +336,5 @@ strstream::~strstream()
}
_LIBCPP_END_NAMESPACE_STD
+
+_LIBCPP_POP_MACROS
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/runtime/exception_fallback.ipp b/contrib/libs/cxxsupp/libcxx/src/support/runtime/exception_fallback.ipp
index 6ebaeee2a51..a45f11eb9f5 100644
--- a/contrib/libs/cxxsupp/libcxx/src/support/runtime/exception_fallback.ipp
+++ b/contrib/libs/cxxsupp/libcxx/src/support/runtime/exception_fallback.ipp
@@ -12,9 +12,8 @@
namespace std {
-_LIBCPP_SAFE_STATIC static std::terminate_handler __terminate_handler;
-_LIBCPP_SAFE_STATIC static std::unexpected_handler __unexpected_handler;
-
+static constinit std::terminate_handler __terminate_handler = nullptr;
+static constinit std::unexpected_handler __unexpected_handler = nullptr;
// libcxxrt provides implementations of these functions itself.
unexpected_handler
@@ -27,7 +26,6 @@ unexpected_handler
get_unexpected() noexcept
{
return __libcpp_atomic_load(&__unexpected_handler);
-
}
_LIBCPP_NORETURN
diff --git a/contrib/libs/cxxsupp/libcxx/src/support/runtime/new_handler_fallback.ipp b/contrib/libs/cxxsupp/libcxx/src/support/runtime/new_handler_fallback.ipp
index 3eaeb489a10..7556f693a92 100644
--- a/contrib/libs/cxxsupp/libcxx/src/support/runtime/new_handler_fallback.ipp
+++ b/contrib/libs/cxxsupp/libcxx/src/support/runtime/new_handler_fallback.ipp
@@ -11,7 +11,7 @@
namespace std {
-_LIBCPP_SAFE_STATIC static std::new_handler __new_handler;
+static _LIBCPP_CONSTINIT std::new_handler __new_handler = nullptr;
new_handler
set_new_handler(new_handler handler) noexcept
diff --git a/contrib/libs/cxxsupp/libcxx/src/system_error.cpp b/contrib/libs/cxxsupp/libcxx/src/system_error.cpp
index 82472cbc84b..66db76c37b5 100644
--- a/contrib/libs/cxxsupp/libcxx/src/system_error.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/system_error.cpp
@@ -6,18 +6,17 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
-
-#include "system_error"
+#include <__assert>
+#include <__config>
+#include <cerrno>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <string>
+#include <string.h>
+#include <system_error>
#include "include/config_elast.h"
-#include "cerrno"
-#include "cstring"
-#include "cstdio"
-#include "cstdlib"
-#include "string"
-#include "string.h"
-#include "__debug"
#if defined(__ANDROID__)
#include <android/api-level.h>
diff --git a/contrib/libs/cxxsupp/libcxx/src/thread.cpp b/contrib/libs/cxxsupp/libcxx/src/thread.cpp
index 8dddb240b5a..0734659d2dd 100644
--- a/contrib/libs/cxxsupp/libcxx/src/thread.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/thread.cpp
@@ -6,14 +6,15 @@
//
//===----------------------------------------------------------------------===//
-#include "__config"
+#include <__config>
+
#ifndef _LIBCPP_HAS_NO_THREADS
-#include "thread"
-#include "exception"
-#include "vector"
-#include "future"
-#include "limits"
+#include <exception>
+#include <future>
+#include <limits>
+#include <thread>
+#include <vector>
#if __has_include(<unistd.h>)
# include <unistd.h> // for sysconf
diff --git a/contrib/libs/cxxsupp/libcxx/src/typeinfo.cpp b/contrib/libs/cxxsupp/libcxx/src/typeinfo.cpp
index 3534c66331d..a98ceb00340 100644
--- a/contrib/libs/cxxsupp/libcxx/src/typeinfo.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/typeinfo.cpp
@@ -6,9 +6,10 @@
//
//===----------------------------------------------------------------------===//
-#include "typeinfo"
+#include <typeinfo>
#if defined(_LIBCPP_ABI_MICROSOFT) && !defined(_LIBCPP_ABI_VCRUNTIME)
+
#include <string.h>
int std::type_info::__compare(const type_info &__rhs) const noexcept {
diff --git a/contrib/libs/cxxsupp/libcxx/src/utility.cpp b/contrib/libs/cxxsupp/libcxx/src/utility.cpp
index 6d2cc4accee..44433d11d7a 100644
--- a/contrib/libs/cxxsupp/libcxx/src/utility.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/utility.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "utility"
+#include <utility>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/valarray.cpp b/contrib/libs/cxxsupp/libcxx/src/valarray.cpp
index 5a3a869181c..5d63bc11846 100644
--- a/contrib/libs/cxxsupp/libcxx/src/valarray.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/valarray.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "valarray"
+#include <valarray>
_LIBCPP_BEGIN_NAMESPACE_STD
diff --git a/contrib/libs/cxxsupp/libcxx/src/variant.cpp b/contrib/libs/cxxsupp/libcxx/src/variant.cpp
index d38d3a799d3..b6ec448081a 100644
--- a/contrib/libs/cxxsupp/libcxx/src/variant.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/variant.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "variant"
+#include <variant>
namespace std {
diff --git a/contrib/libs/cxxsupp/libcxx/src/vector.cpp b/contrib/libs/cxxsupp/libcxx/src/vector.cpp
index 201d4e3bf09..fa63d5c5e31 100644
--- a/contrib/libs/cxxsupp/libcxx/src/vector.cpp
+++ b/contrib/libs/cxxsupp/libcxx/src/vector.cpp
@@ -6,7 +6,7 @@
//
//===----------------------------------------------------------------------===//
-#include "vector"
+#include <vector>
_LIBCPP_BEGIN_NAMESPACE_STD