mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-04 19:52:28 +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
63
third_party/libcxx/__filesystem/path_iterator.h
vendored
63
third_party/libcxx/__filesystem/path_iterator.h
vendored
|
@ -11,7 +11,6 @@
|
|||
#define _LIBCPP___FILESYSTEM_PATH_ITERATOR_H
|
||||
|
||||
#include <__assert>
|
||||
#include <__availability>
|
||||
#include <__config>
|
||||
#include <__filesystem/path.h>
|
||||
#include <__iterator/iterator_traits.h>
|
||||
|
@ -23,13 +22,11 @@
|
|||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#ifndef _LIBCPP_CXX03_LANG
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_PUSH
|
||||
|
||||
class _LIBCPP_TYPE_VIS path::iterator {
|
||||
class _LIBCPP_EXPORTED_FROM_ABI path::iterator {
|
||||
public:
|
||||
enum _ParserState : unsigned char {
|
||||
_Singular,
|
||||
|
@ -51,49 +48,37 @@ public:
|
|||
typedef path reference;
|
||||
|
||||
public:
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator()
|
||||
: __stashed_elem_(), __path_ptr_(nullptr), __entry_(),
|
||||
__state_(_Singular) {}
|
||||
_LIBCPP_HIDE_FROM_ABI iterator() : __stashed_elem_(), __path_ptr_(nullptr), __entry_(), __state_(_Singular) {}
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI iterator(const iterator&) = default;
|
||||
_LIBCPP_HIDE_FROM_ABI ~iterator() = default;
|
||||
_LIBCPP_HIDE_FROM_ABI ~iterator() = default;
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI iterator& operator=(const iterator&) = default;
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
reference operator*() const { return __stashed_elem_; }
|
||||
_LIBCPP_HIDE_FROM_ABI reference operator*() const { return __stashed_elem_; }
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
pointer operator->() const { return &__stashed_elem_; }
|
||||
_LIBCPP_HIDE_FROM_ABI pointer operator->() const { return &__stashed_elem_; }
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator& operator++() {
|
||||
_LIBCPP_ASSERT(__state_ != _Singular,
|
||||
"attempting to increment a singular iterator");
|
||||
_LIBCPP_ASSERT(__state_ != _AtEnd,
|
||||
"attempting to increment the end iterator");
|
||||
_LIBCPP_HIDE_FROM_ABI iterator& operator++() {
|
||||
_LIBCPP_ASSERT_NON_NULL(__state_ != _Singular, "attempting to increment a singular iterator");
|
||||
_LIBCPP_ASSERT_UNCATEGORIZED(__state_ != _AtEnd, "attempting to increment the end iterator");
|
||||
return __increment();
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator operator++(int) {
|
||||
_LIBCPP_HIDE_FROM_ABI iterator operator++(int) {
|
||||
iterator __it(*this);
|
||||
this->operator++();
|
||||
return __it;
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator& operator--() {
|
||||
_LIBCPP_ASSERT(__state_ != _Singular,
|
||||
"attempting to decrement a singular iterator");
|
||||
_LIBCPP_ASSERT(__entry_.data() != __path_ptr_->native().data(),
|
||||
"attempting to decrement the begin iterator");
|
||||
_LIBCPP_HIDE_FROM_ABI iterator& operator--() {
|
||||
_LIBCPP_ASSERT_NON_NULL(__state_ != _Singular, "attempting to decrement a singular iterator");
|
||||
_LIBCPP_ASSERT_UNCATEGORIZED(
|
||||
__entry_.data() != __path_ptr_->native().data(), "attempting to decrement the begin iterator");
|
||||
return __decrement();
|
||||
}
|
||||
|
||||
_LIBCPP_INLINE_VISIBILITY
|
||||
iterator operator--(int) {
|
||||
_LIBCPP_HIDE_FROM_ABI iterator operator--(int) {
|
||||
iterator __it(*this);
|
||||
this->operator--();
|
||||
return __it;
|
||||
|
@ -102,8 +87,7 @@ public:
|
|||
private:
|
||||
friend class path;
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY friend bool operator==(const iterator&,
|
||||
const iterator&);
|
||||
inline _LIBCPP_HIDE_FROM_ABI friend bool operator==(const iterator&, const iterator&);
|
||||
|
||||
iterator& __increment();
|
||||
iterator& __decrement();
|
||||
|
@ -114,21 +98,18 @@ private:
|
|||
_ParserState __state_;
|
||||
};
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY bool operator==(const path::iterator& __lhs,
|
||||
const path::iterator& __rhs) {
|
||||
return __lhs.__path_ptr_ == __rhs.__path_ptr_ &&
|
||||
__lhs.__entry_.data() == __rhs.__entry_.data();
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
|
||||
inline _LIBCPP_HIDE_FROM_ABI bool operator==(const path::iterator& __lhs, const path::iterator& __rhs) {
|
||||
return __lhs.__path_ptr_ == __rhs.__path_ptr_ && __lhs.__entry_.data() == __rhs.__entry_.data();
|
||||
}
|
||||
|
||||
inline _LIBCPP_INLINE_VISIBILITY bool operator!=(const path::iterator& __lhs,
|
||||
const path::iterator& __rhs) {
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_LIBRARY
|
||||
inline _LIBCPP_HIDE_FROM_ABI bool operator!=(const path::iterator& __lhs, const path::iterator& __rhs) {
|
||||
return !(__lhs == __rhs);
|
||||
}
|
||||
|
||||
_LIBCPP_AVAILABILITY_FILESYSTEM_POP
|
||||
|
||||
_LIBCPP_END_NAMESPACE_FILESYSTEM
|
||||
|
||||
#endif // _LIBCPP_CXX03_LANG
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
|
||||
#endif // _LIBCPP___FILESYSTEM_PATH_ITERATOR_H
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue