From 3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Sat, 11 Jul 2026 22:48:30 +0800 Subject: lib: establish Zircon libc++ and KTL foundation --- third_party/libcxx/include/c++/v1/iosfwd | 191 +++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 third_party/libcxx/include/c++/v1/iosfwd (limited to 'third_party/libcxx/include/c++/v1/iosfwd') diff --git a/third_party/libcxx/include/c++/v1/iosfwd b/third_party/libcxx/include/c++/v1/iosfwd new file mode 100644 index 0000000..7f7c941 --- /dev/null +++ b/third_party/libcxx/include/c++/v1/iosfwd @@ -0,0 +1,191 @@ +// -*- 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_IOSFWD +#define _LIBCPP_IOSFWD + +/* + iosfwd synopsis + +namespace std +{ + +template struct char_traits; +template<> struct char_traits; +template<> struct char_traits; // C++20 +template<> struct char_traits; +template<> struct char_traits; +template<> struct char_traits; + +template class allocator; + +template > class basic_ios; + +template > class basic_streambuf; +template > class basic_istream; +template > class basic_ostream; +template > class basic_iostream; + +template , class Allocator = allocator > + class basic_stringbuf; +template , class Allocator = allocator > + class basic_istringstream; +template , class Allocator = allocator > + class basic_ostringstream; +template , class Allocator = allocator > + class basic_stringstream; + +template > class basic_filebuf; +template > class basic_ifstream; +template > class basic_ofstream; +template > class basic_fstream; + +template > class istreambuf_iterator; +template > class ostreambuf_iterator; + +typedef basic_ios ios; +typedef basic_ios wios; + +typedef basic_streambuf streambuf; +typedef basic_istream istream; +typedef basic_ostream ostream; +typedef basic_iostream iostream; + +typedef basic_stringbuf stringbuf; +typedef basic_istringstream istringstream; +typedef basic_ostringstream ostringstream; +typedef basic_stringstream stringstream; + +typedef basic_filebuf filebuf; +typedef basic_ifstream ifstream; +typedef basic_ofstream ofstream; +typedef basic_fstream fstream; + +typedef basic_streambuf wstreambuf; +typedef basic_istream wistream; +typedef basic_ostream wostream; +typedef basic_iostream wiostream; + +typedef basic_stringbuf wstringbuf; +typedef basic_istringstream wistringstream; +typedef basic_ostringstream wostringstream; +typedef basic_stringstream wstringstream; + +typedef basic_filebuf wfilebuf; +typedef basic_ifstream wifstream; +typedef basic_ofstream wofstream; +typedef basic_fstream wfstream; + +template class fpos; +using streampos = fpos::state_type>; +using wstreampos = fpos::state_type>; +using u8streampos = fpos::state_type>; // C++20 +using u16streampos = fpos::state_type>; +using u32streampos = fpos::state_type>; + +template , class Allocator = allocator> + class basic_syncbuf; // C++20 + +using syncbuf = basic_syncbuf; // C++20 +using wsyncbuf = basic_syncbuf; // C++20 + +template , class Allocator = allocator> + class basic_osyncstream; // C++20 + +using osyncstream = basic_osyncstream; // C++20 +using wosyncstream = basic_osyncstream; // C++20 + +} // std + +*/ + +#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) +# include <__cxx03/iosfwd> +#else +# include <__config> +# include <__fwd/fstream.h> +# include <__fwd/ios.h> +# include <__fwd/istream.h> +# include <__fwd/memory.h> +# include <__fwd/ostream.h> +# include <__fwd/sstream.h> +# include <__fwd/streambuf.h> +# include <__fwd/string.h> +# include <__std_mbstate_t.h> +# include + +# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +# endif + +_LIBCPP_BEGIN_NAMESPACE_STD + +template > +class istreambuf_iterator; +template > +class ostreambuf_iterator; + +template +class fpos; +typedef fpos streampos; +# if _LIBCPP_HAS_WIDE_CHARACTERS +typedef fpos wstreampos; +# endif +# if _LIBCPP_HAS_CHAR8_T +typedef fpos u8streampos; +# endif +typedef fpos u16streampos; +typedef fpos u32streampos; + +# if _LIBCPP_STD_VER >= 20 && _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM + +template , class _Allocator = allocator<_CharT>> +class basic_syncbuf; + +using syncbuf = basic_syncbuf; +# if _LIBCPP_HAS_WIDE_CHARACTERS +using wsyncbuf = basic_syncbuf; +# endif + +template , class _Allocator = allocator<_CharT>> +class basic_osyncstream; + +using osyncstream = basic_osyncstream; +# if _LIBCPP_HAS_WIDE_CHARACTERS +using wosyncstream = basic_osyncstream; +# endif + +# endif // _LIBCPP_STD_VER >= 20 && _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM + +template +class __save_flags { + typedef basic_ios<_CharT, _Traits> __stream_type; + typedef typename __stream_type::fmtflags fmtflags; + + __stream_type& __stream_; + fmtflags __fmtflags_; + _CharT __fill_; + +public: + __save_flags(const __save_flags&) = delete; + __save_flags& operator=(const __save_flags&) = delete; + + _LIBCPP_HIDE_FROM_ABI explicit __save_flags(__stream_type& __stream) + : __stream_(__stream), __fmtflags_(__stream.flags()), __fill_(__stream.fill()) {} + _LIBCPP_HIDE_FROM_ABI ~__save_flags() { + __stream_.flags(__fmtflags_); + __stream_.fill(__fill_); + } +}; + +_LIBCPP_END_NAMESPACE_STD + +#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) + +#endif // _LIBCPP_IOSFWD -- cgit v1.2.3