mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-30 01:02:29 +00:00
Release Cosmopolitan v3.6.0
This release is an atomic upgrade to GCC 14.1.0 with C23 and C++23
This commit is contained in:
parent
62ace3623a
commit
5660ec4741
1585 changed files with 117353 additions and 271644 deletions
101
third_party/libcxx/iterator
vendored
101
third_party/libcxx/iterator
vendored
|
@ -475,6 +475,11 @@ constexpr move_iterator<Iterator> operator+( // constexpr in C++17
|
|||
template <class Iterator> // constexpr in C++17
|
||||
constexpr move_iterator<Iterator> make_move_iterator(const Iterator& i);
|
||||
|
||||
template<class Iterator1, class Iterator2>
|
||||
requires (!sized_sentinel_for<Iterator1, Iterator2>)
|
||||
inline constexpr bool disable_sized_sentinel_for<move_iterator<Iterator1>, // since C++20
|
||||
move_iterator<Iterator2>> = true;
|
||||
|
||||
template<semiregular S>
|
||||
class move_sentinel {
|
||||
public:
|
||||
|
@ -634,25 +639,25 @@ public:
|
|||
bool failed() const noexcept;
|
||||
};
|
||||
|
||||
template <class C> constexpr auto begin(C& c) -> decltype(c.begin());
|
||||
template <class C> constexpr auto begin(const C& c) -> decltype(c.begin());
|
||||
template <class C> constexpr auto end(C& c) -> decltype(c.end());
|
||||
template <class C> constexpr auto end(const C& c) -> decltype(c.end());
|
||||
template <class T, size_t N> constexpr T* begin(T (&array)[N]);
|
||||
template <class T, size_t N> constexpr T* end(T (&array)[N]);
|
||||
template <class C> constexpr auto begin(C& c) -> decltype(c.begin()); // constexpr since C++17
|
||||
template <class C> constexpr auto begin(const C& c) -> decltype(c.begin()); // constexpr since C++17
|
||||
template <class C> constexpr auto end(C& c) -> decltype(c.end()); // constexpr since C++17
|
||||
template <class C> constexpr auto end(const C& c) -> decltype(c.end()); // constexpr since C++17
|
||||
template <class T, size_t N> constexpr T* begin(T (&array)[N]) noexcept;
|
||||
template <class T, size_t N> constexpr T* end(T (&array)[N]) noexcept;
|
||||
|
||||
template <class C> auto constexpr cbegin(const C& c) -> decltype(std::begin(c)); // C++14
|
||||
template <class C> auto constexpr cend(const C& c) -> decltype(std::end(c)); // C++14
|
||||
template <class C> auto constexpr rbegin(C& c) -> decltype(c.rbegin()); // C++14
|
||||
template <class C> auto constexpr rbegin(const C& c) -> decltype(c.rbegin()); // C++14
|
||||
template <class C> auto constexpr rend(C& c) -> decltype(c.rend()); // C++14
|
||||
template <class C> constexpr auto rend(const C& c) -> decltype(c.rend()); // C++14
|
||||
template <class E> reverse_iterator<const E*> constexpr rbegin(initializer_list<E> il); // C++14
|
||||
template <class E> reverse_iterator<const E*> constexpr rend(initializer_list<E> il); // C++14
|
||||
template <class T, size_t N> reverse_iterator<T*> constexpr rbegin(T (&array)[N]); // C++14
|
||||
template <class T, size_t N> reverse_iterator<T*> constexpr rend(T (&array)[N]); // C++14
|
||||
template <class C> constexpr auto crbegin(const C& c) -> decltype(std::rbegin(c)); // C++14
|
||||
template <class C> constexpr auto crend(const C& c) -> decltype(std::rend(c)); // C++14
|
||||
template <class C> constexpr auto cbegin(const C& c) noexcept(see-below) -> decltype(std::begin(c)); // C++14
|
||||
template <class C> constexpr auto cend(const C& c) noexcept(see-below) -> decltype(std::end(c)); // C++14
|
||||
template <class C> constexpr auto rbegin(C& c) -> decltype(c.rbegin()); // C++14, constexpr since C++17
|
||||
template <class C> constexpr auto rbegin(const C& c) -> decltype(c.rbegin()); // C++14, constexpr since C++17
|
||||
template <class C> constexpr auto rend(C& c) -> decltype(c.rend()); // C++14, constexpr since C++17
|
||||
template <class C> constexpr auto rend(const C& c) -> decltype(c.rend()); // C++14, constexpr since C++17
|
||||
template <class E> constexpr reverse_iterator<const E*> rbegin(initializer_list<E> il); // C++14, constexpr since C++17
|
||||
template <class E> constexpr reverse_iterator<const E*> rend(initializer_list<E> il); // C++14, constexpr since C++17
|
||||
template <class T, size_t N> constexpr reverse_iterator<T*> rbegin(T (&array)[N]); // C++14, constexpr since C++17
|
||||
template <class T, size_t N> constexpr reverse_iterator<T*> rend(T (&array)[N]); // C++14, constexpr since C++17
|
||||
template <class C> constexpr auto crbegin(const C& c) -> decltype(std::rbegin(c)); // C++14, constexpr since C++17
|
||||
template <class C> constexpr auto crend(const C& c) -> decltype(std::rend(c)); // C++14, constexpr since C++17
|
||||
|
||||
// 24.8, container access:
|
||||
template <class C> constexpr auto size(const C& c) -> decltype(c.size()); // C++17
|
||||
|
@ -674,51 +679,53 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
#include <__iterator/access.h>
|
||||
#include <__iterator/advance.h>
|
||||
#include <__iterator/back_insert_iterator.h>
|
||||
#include <__iterator/bounded_iter.h>
|
||||
#include <__iterator/common_iterator.h>
|
||||
#include <__iterator/concepts.h>
|
||||
#include <__iterator/counted_iterator.h>
|
||||
#include <__iterator/data.h>
|
||||
#include <__iterator/default_sentinel.h>
|
||||
#include <__iterator/distance.h>
|
||||
#include <__iterator/empty.h>
|
||||
#include <__iterator/erase_if_container.h>
|
||||
#include <__iterator/front_insert_iterator.h>
|
||||
#include <__iterator/incrementable_traits.h>
|
||||
#include <__iterator/indirectly_comparable.h>
|
||||
#include <__iterator/insert_iterator.h>
|
||||
#include <__iterator/istream_iterator.h>
|
||||
#include <__iterator/istreambuf_iterator.h>
|
||||
#include <__iterator/iter_move.h>
|
||||
#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/move_sentinel.h>
|
||||
#include <__iterator/next.h>
|
||||
#include <__iterator/ostream_iterator.h>
|
||||
#include <__iterator/ostreambuf_iterator.h>
|
||||
#include <__iterator/permutable.h>
|
||||
#include <__iterator/prev.h>
|
||||
#include <__iterator/projected.h>
|
||||
#include <__iterator/readable_traits.h>
|
||||
#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>
|
||||
#include <__memory/pointer_traits.h>
|
||||
#include <cstddef>
|
||||
#include <initializer_list>
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
# include <__iterator/reverse_access.h>
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
# include <__iterator/data.h>
|
||||
# include <__iterator/empty.h>
|
||||
# include <__iterator/size.h>
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
# include <__iterator/common_iterator.h>
|
||||
# include <__iterator/concepts.h>
|
||||
# include <__iterator/counted_iterator.h>
|
||||
# include <__iterator/default_sentinel.h>
|
||||
# include <__iterator/incrementable_traits.h>
|
||||
# include <__iterator/indirectly_comparable.h>
|
||||
# include <__iterator/iter_move.h>
|
||||
# include <__iterator/iter_swap.h>
|
||||
# include <__iterator/mergeable.h>
|
||||
# include <__iterator/move_sentinel.h>
|
||||
# include <__iterator/permutable.h>
|
||||
# include <__iterator/projected.h>
|
||||
# include <__iterator/readable_traits.h>
|
||||
# include <__iterator/sortable.h>
|
||||
# include <__iterator/unreachable_sentinel.h>
|
||||
#endif
|
||||
|
||||
#include <version>
|
||||
|
||||
// standard-mandated includes
|
||||
|
@ -731,6 +738,10 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
|
|||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
|
||||
# include <variant>
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
|
||||
# include <cstdlib>
|
||||
# include <exception>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue