brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.2 KiB · 8ec17b6 Raw
216 lines · plain
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCPP_OSTREAM11#define _LIBCPP_OSTREAM12 13/*14    ostream synopsis15 16template <class charT, class traits = char_traits<charT> >17class basic_ostream18    : virtual public basic_ios<charT,traits>19{20public:21    // types (inherited from basic_ios (27.5.4)):22    typedef charT                          char_type;23    typedef traits                         traits_type;24    typedef typename traits_type::int_type int_type;25    typedef typename traits_type::pos_type pos_type;26    typedef typename traits_type::off_type off_type;27 28    // 27.7.2.2 Constructor/destructor:29    explicit basic_ostream(basic_streambuf<char_type,traits>* sb);30    basic_ostream(basic_ostream&& rhs);31    virtual ~basic_ostream();32 33    // 27.7.2.3 Assign/swap34    basic_ostream& operator=(const basic_ostream& rhs) = delete; // C++1435    basic_ostream& operator=(basic_ostream&& rhs);36    void swap(basic_ostream& rhs);37 38    // 27.7.2.4 Prefix/suffix:39    class sentry;40 41    // 27.7.2.6 Formatted output:42    basic_ostream& operator<<(basic_ostream& (*pf)(basic_ostream&));43    basic_ostream& operator<<(basic_ios<charT, traits>& (*pf)(basic_ios<charT,traits>&));44    basic_ostream& operator<<(ios_base& (*pf)(ios_base&));45    basic_ostream& operator<<(bool n);46    basic_ostream& operator<<(short n);47    basic_ostream& operator<<(unsigned short n);48    basic_ostream& operator<<(int n);49    basic_ostream& operator<<(unsigned int n);50    basic_ostream& operator<<(long n);51    basic_ostream& operator<<(unsigned long n);52    basic_ostream& operator<<(long long n);53    basic_ostream& operator<<(unsigned long long n);54    basic_ostream& operator<<(float f);55    basic_ostream& operator<<(double f);56    basic_ostream& operator<<(long double f);57    basic_ostream& operator<<(const void* p);58    basic_ostream& operator<<(const volatile void* val); // C++2359    basic_ostream& operator<<(basic_streambuf<char_type,traits>* sb);60    basic_ostream& operator<<(nullptr_t);61 62    // 27.7.2.7 Unformatted output:63    basic_ostream& put(char_type c);64    basic_ostream& write(const char_type* s, streamsize n);65    basic_ostream& flush();66 67    // 27.7.2.5 seeks:68    pos_type tellp();69    basic_ostream& seekp(pos_type);70    basic_ostream& seekp(off_type, ios_base::seekdir);71protected:72    basic_ostream(const basic_ostream& rhs) = delete;73    basic_ostream(basic_ostream&& rhs);74    // 27.7.3.3 Assign/swap75    basic_ostream& operator=(basic_ostream& rhs) = delete;76    basic_ostream& operator=(const basic_ostream&& rhs);77    void swap(basic_ostream& rhs);78};79 80// 27.7.2.6.4 character inserters81 82template<class charT, class traits>83  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, charT);84 85template<class charT, class traits>86  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, char);87 88template<class traits>89  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, char);90 91// signed and unsigned92 93template<class traits>94  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, signed char);95 96template<class traits>97  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, unsigned char);98 99// NTBS100template<class charT, class traits>101  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*);102 103template<class charT, class traits>104  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const char*);105 106template<class traits>107  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const char*);108 109// signed and unsigned110template<class traits>111basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const signed char*);112 113template<class traits>114  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const unsigned char*);115 116// swap:117template <class charT, class traits>118  void swap(basic_ostream<charT, traits>& x, basic_ostream<charT, traits>& y);119 120template <class charT, class traits>121  basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);122 123template <class charT, class traits>124  basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os);125 126template <class charT, class traits>127  basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os);128 129// rvalue stream insertion130template <class Stream, class T>131  Stream&& operator<<(Stream&& os, const T& x);132 133template<class traits>134basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, wchar_t) = delete;               // since C++20135template<class traits>136basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char8_t) = delete;               // since C++20137template<class traits>138basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char16_t) = delete;              // since C++20139template<class traits>140basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char32_t) = delete;              // since C++20141template<class traits>142basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char8_t) = delete;         // since C++20143template<class traits>144basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char16_t) = delete;        // since C++20145template<class traits>146basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char32_t) = delete;        // since C++20147template<class traits>148basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const wchar_t*) = delete;        // since C++20149template<class traits>150basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char8_t*) = delete;        // since C++20151template<class traits>152basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char16_t*) = delete;       // since C++20153template<class traits>154basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char32_t*) = delete;       // since C++20155template<class traits>156basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char8_t*) = delete;  // since C++20157template<class traits>158basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char16_t*) = delete; // since C++20159template<class traits>160basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char32_t*) = delete; // since C++20161 162// [ostream.formatted.print], print functions163template<class... Args>                                                                                // since C++23164  void print(ostream& os, format_string<Args...> fmt, Args&&... args);165template<class... Args>                                                                                // since C++23166  void println(ostream& os, format_string<Args...> fmt, Args&&... args);167void println(ostream& os);                                                                             // since C++26168 169void vprint_unicode(ostream& os, string_view fmt, format_args args);                                   // since C++23170void vprint_nonunicode(ostream& os, string_view fmt, format_args args);                                // since C++23171}  // std172 173*/174 175#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)176#  include <__cxx03/ostream>177#else178#  include <__config>179 180#  if _LIBCPP_HAS_LOCALIZATION181 182#    include <__ostream/basic_ostream.h>183 184#    if _LIBCPP_STD_VER >= 23185#      include <__ostream/print.h>186#    endif187 188#    include <version>189 190#    if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)191#      pragma GCC system_header192#    endif193 194#  endif // _LIBCPP_HAS_LOCALIZATION195 196#  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20197#    include <atomic>198#    include <concepts>199#    include <cstdio>200#    include <cstdlib>201#    include <format>202#    include <iosfwd>203#    include <iterator>204#    include <print>205#    include <stdexcept>206#    include <type_traits>207#  endif208 209#  if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 23210#    include <locale>211#  endif212 213#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS)214 215#endif // _LIBCPP_OSTREAM216