mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-26 22:38:30 +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
69
third_party/libcxx/experimental/iterator
vendored
69
third_party/libcxx/experimental/iterator
vendored
|
@ -52,19 +52,20 @@ namespace std {
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__memory/addressof.h>
|
||||
#include <__type_traits/decay.h>
|
||||
#include <__utility/forward.h>
|
||||
#include <__utility/move.h>
|
||||
#include <experimental/__config>
|
||||
#include <iosfwd> // char_traits
|
||||
#include <iterator>
|
||||
|
||||
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
||||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
_LIBCPP_PUSH_MACROS
|
||||
#include <__undef_macros>
|
||||
|
||||
#if _LIBCPP_STD_VER >= 14
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_LFTS
|
||||
|
@ -72,54 +73,54 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS
|
|||
template <class _Delim, class _CharT = char, class _Traits = char_traits<_CharT>>
|
||||
class ostream_joiner {
|
||||
public:
|
||||
typedef _CharT char_type;
|
||||
typedef _Traits traits_type;
|
||||
typedef basic_ostream<char_type, traits_type> ostream_type;
|
||||
typedef output_iterator_tag iterator_category;
|
||||
typedef void value_type;
|
||||
typedef void difference_type;
|
||||
typedef void pointer;
|
||||
typedef void reference;
|
||||
|
||||
typedef _CharT char_type;
|
||||
typedef _Traits traits_type;
|
||||
typedef basic_ostream<char_type,traits_type> ostream_type;
|
||||
typedef output_iterator_tag iterator_category;
|
||||
typedef void value_type;
|
||||
typedef void difference_type;
|
||||
typedef void pointer;
|
||||
typedef void reference;
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner(ostream_type& __os, _Delim&& __d)
|
||||
: __output_iter_(std::addressof(__os)), __delim_(std::move(__d)), __first_(true) {}
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner(ostream_type& __os, _Delim&& __d)
|
||||
: __output_iter_(_VSTD::addressof(__os)), __delim_(_VSTD::move(__d)), __first_(true) {}
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner(ostream_type& __os, const _Delim& __d)
|
||||
: __output_iter_(std::addressof(__os)), __delim_(__d), __first_(true) {}
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner(ostream_type& __os, const _Delim& __d)
|
||||
: __output_iter_(_VSTD::addressof(__os)), __delim_(__d), __first_(true) {}
|
||||
template <typename _Tp>
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator=(const _Tp& __v) {
|
||||
if (!__first_)
|
||||
*__output_iter_ << __delim_;
|
||||
__first_ = false;
|
||||
*__output_iter_ << __v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
template<typename _Tp>
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator=(const _Tp& __v)
|
||||
{
|
||||
if (!__first_)
|
||||
*__output_iter_ << __delim_;
|
||||
__first_ = false;
|
||||
*__output_iter_ << __v;
|
||||
return *this;
|
||||
}
|
||||
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator*() _NOEXCEPT { return *this; }
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator++() _NOEXCEPT { return *this; }
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator++(int) _NOEXCEPT { return *this; }
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator*() _NOEXCEPT { return *this; }
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator++() _NOEXCEPT { return *this; }
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner& operator++(int) _NOEXCEPT { return *this; }
|
||||
|
||||
private:
|
||||
ostream_type* __output_iter_;
|
||||
_Delim __delim_;
|
||||
bool __first_;
|
||||
ostream_type* __output_iter_;
|
||||
_Delim __delim_;
|
||||
bool __first_;
|
||||
};
|
||||
|
||||
|
||||
template <class _CharT, class _Traits, class _Delim>
|
||||
_LIBCPP_HIDE_FROM_ABI ostream_joiner<__decay_t<_Delim>, _CharT, _Traits>
|
||||
make_ostream_joiner(basic_ostream<_CharT, _Traits>& __os, _Delim && __d)
|
||||
{ return ostream_joiner<__decay_t<_Delim>, _CharT, _Traits>(__os, _VSTD::forward<_Delim>(__d)); }
|
||||
make_ostream_joiner(basic_ostream<_CharT, _Traits>& __os, _Delim&& __d) {
|
||||
return ostream_joiner<__decay_t<_Delim>, _CharT, _Traits>(__os, std::forward<_Delim>(__d));
|
||||
}
|
||||
|
||||
_LIBCPP_END_NAMESPACE_LFTS
|
||||
|
||||
#endif // _LIBCPP_STD_VER >= 14
|
||||
|
||||
_LIBCPP_POP_MACROS
|
||||
|
||||
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
|
||||
# include <iosfwd>
|
||||
# include <type_traits>
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue