diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-07-11 22:48:30 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-07-11 22:48:30 +0800 |
| commit | 3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee (patch) | |
| tree | 4bd5a49ef60ad1e371c0984cd46838368c5ef83a /third_party/libcxx/include/c++/v1/ostream | |
| parent | 48ef95c24e9ac3d11200b61af617a01b10b507d1 (diff) | |
| download | lume-3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee.tar.gz lume-3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee.tar.xz | |
lib: establish Zircon libc++ and KTL foundation
Diffstat (limited to 'third_party/libcxx/include/c++/v1/ostream')
| -rw-r--r-- | third_party/libcxx/include/c++/v1/ostream | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/third_party/libcxx/include/c++/v1/ostream b/third_party/libcxx/include/c++/v1/ostream new file mode 100644 index 0000000..8ec17b6 --- /dev/null +++ b/third_party/libcxx/include/c++/v1/ostream @@ -0,0 +1,215 @@ +// -*- 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_OSTREAM +#define _LIBCPP_OSTREAM + +/* + ostream synopsis + +template <class charT, class traits = char_traits<charT> > +class basic_ostream + : virtual public basic_ios<charT,traits> +{ +public: + // types (inherited from basic_ios (27.5.4)): + typedef charT char_type; + typedef traits traits_type; + typedef typename traits_type::int_type int_type; + typedef typename traits_type::pos_type pos_type; + typedef typename traits_type::off_type off_type; + + // 27.7.2.2 Constructor/destructor: + explicit basic_ostream(basic_streambuf<char_type,traits>* sb); + basic_ostream(basic_ostream&& rhs); + virtual ~basic_ostream(); + + // 27.7.2.3 Assign/swap + basic_ostream& operator=(const basic_ostream& rhs) = delete; // C++14 + basic_ostream& operator=(basic_ostream&& rhs); + void swap(basic_ostream& rhs); + + // 27.7.2.4 Prefix/suffix: + class sentry; + + // 27.7.2.6 Formatted output: + basic_ostream& operator<<(basic_ostream& (*pf)(basic_ostream&)); + basic_ostream& operator<<(basic_ios<charT, traits>& (*pf)(basic_ios<charT,traits>&)); + basic_ostream& operator<<(ios_base& (*pf)(ios_base&)); + basic_ostream& operator<<(bool n); + basic_ostream& operator<<(short n); + basic_ostream& operator<<(unsigned short n); + basic_ostream& operator<<(int n); + basic_ostream& operator<<(unsigned int n); + basic_ostream& operator<<(long n); + basic_ostream& operator<<(unsigned long n); + basic_ostream& operator<<(long long n); + basic_ostream& operator<<(unsigned long long n); + basic_ostream& operator<<(float f); + basic_ostream& operator<<(double f); + basic_ostream& operator<<(long double f); + basic_ostream& operator<<(const void* p); + basic_ostream& operator<<(const volatile void* val); // C++23 + basic_ostream& operator<<(basic_streambuf<char_type,traits>* sb); + basic_ostream& operator<<(nullptr_t); + + // 27.7.2.7 Unformatted output: + basic_ostream& put(char_type c); + basic_ostream& write(const char_type* s, streamsize n); + basic_ostream& flush(); + + // 27.7.2.5 seeks: + pos_type tellp(); + basic_ostream& seekp(pos_type); + basic_ostream& seekp(off_type, ios_base::seekdir); +protected: + basic_ostream(const basic_ostream& rhs) = delete; + basic_ostream(basic_ostream&& rhs); + // 27.7.3.3 Assign/swap + basic_ostream& operator=(basic_ostream& rhs) = delete; + basic_ostream& operator=(const basic_ostream&& rhs); + void swap(basic_ostream& rhs); +}; + +// 27.7.2.6.4 character inserters + +template<class charT, class traits> + basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, charT); + +template<class charT, class traits> + basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, char); + +template<class traits> + basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, char); + +// signed and unsigned + +template<class traits> + basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, signed char); + +template<class traits> + basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, unsigned char); + +// NTBS +template<class charT, class traits> + basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*); + +template<class charT, class traits> + basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const char*); + +template<class traits> + basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const char*); + +// signed and unsigned +template<class traits> +basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const signed char*); + +template<class traits> + basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const unsigned char*); + +// swap: +template <class charT, class traits> + void swap(basic_ostream<charT, traits>& x, basic_ostream<charT, traits>& y); + +template <class charT, class traits> + basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os); + +template <class charT, class traits> + basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os); + +template <class charT, class traits> + basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os); + +// rvalue stream insertion +template <class Stream, class T> + Stream&& operator<<(Stream&& os, const T& x); + +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, wchar_t) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char8_t) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char16_t) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char32_t) = delete; // since C++20 +template<class traits> +basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char8_t) = delete; // since C++20 +template<class traits> +basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char16_t) = delete; // since C++20 +template<class traits> +basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char32_t) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const wchar_t*) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char8_t*) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char16_t*) = delete; // since C++20 +template<class traits> +basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char32_t*) = delete; // since C++20 +template<class traits> +basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char8_t*) = delete; // since C++20 +template<class traits> +basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char16_t*) = delete; // since C++20 +template<class traits> +basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char32_t*) = delete; // since C++20 + +// [ostream.formatted.print], print functions +template<class... Args> // since C++23 + void print(ostream& os, format_string<Args...> fmt, Args&&... args); +template<class... Args> // since C++23 + void println(ostream& os, format_string<Args...> fmt, Args&&... args); +void println(ostream& os); // since C++26 + +void vprint_unicode(ostream& os, string_view fmt, format_args args); // since C++23 +void vprint_nonunicode(ostream& os, string_view fmt, format_args args); // since C++23 +} // std + +*/ + +#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) +# include <__cxx03/ostream> +#else +# include <__config> + +# if _LIBCPP_HAS_LOCALIZATION + +# include <__ostream/basic_ostream.h> + +# if _LIBCPP_STD_VER >= 23 +# include <__ostream/print.h> +# endif + +# include <version> + +# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +# endif + +# endif // _LIBCPP_HAS_LOCALIZATION + +# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include <atomic> +# include <concepts> +# include <cstdio> +# include <cstdlib> +# include <format> +# include <iosfwd> +# include <iterator> +# include <print> +# include <stdexcept> +# include <type_traits> +# endif + +# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 23 +# include <locale> +# endif + +#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) + +#endif // _LIBCPP_OSTREAM |
