llvm-project

Форк
0
195 строк · 7.8 Кб
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-exception
7
//
8
//===----------------------------------------------------------------------===//
9

10
#ifndef _LIBCPP_OSTREAM
11
#define _LIBCPP_OSTREAM
12

13
/*
14
    ostream synopsis
15

16
template <class charT, class traits = char_traits<charT> >
17
class basic_ostream
18
    : virtual public basic_ios<charT,traits>
19
{
20
public:
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/swap
34
    basic_ostream& operator=(const basic_ostream& rhs) = delete; // C++14
35
    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++23
59
    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);
71
protected:
72
    basic_ostream(const basic_ostream& rhs) = delete;
73
    basic_ostream(basic_ostream&& rhs);
74
    // 27.7.3.3 Assign/swap
75
    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 inserters
81

82
template<class charT, class traits>
83
  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, charT);
84

85
template<class charT, class traits>
86
  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, char);
87

88
template<class traits>
89
  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, char);
90

91
// signed and unsigned
92

93
template<class traits>
94
  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, signed char);
95

96
template<class traits>
97
  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, unsigned char);
98

99
// NTBS
100
template<class charT, class traits>
101
  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*);
102

103
template<class charT, class traits>
104
  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const char*);
105

106
template<class traits>
107
  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const char*);
108

109
// signed and unsigned
110
template<class traits>
111
basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const signed char*);
112

113
template<class traits>
114
  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const unsigned char*);
115

116
// swap:
117
template <class charT, class traits>
118
  void swap(basic_ostream<charT, traits>& x, basic_ostream<charT, traits>& y);
119

120
template <class charT, class traits>
121
  basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);
122

123
template <class charT, class traits>
124
  basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os);
125

126
template <class charT, class traits>
127
  basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os);
128

129
// rvalue stream insertion
130
template <class Stream, class T>
131
  Stream&& operator<<(Stream&& os, const T& x);
132

133
template<class traits>
134
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, wchar_t) = delete;               // since C++20
135
template<class traits>
136
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char8_t) = delete;               // since C++20
137
template<class traits>
138
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char16_t) = delete;              // since C++20
139
template<class traits>
140
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, char32_t) = delete;              // since C++20
141
template<class traits>
142
basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char8_t) = delete;         // since C++20
143
template<class traits>
144
basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char16_t) = delete;        // since C++20
145
template<class traits>
146
basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, char32_t) = delete;        // since C++20
147
template<class traits>
148
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const wchar_t*) = delete;        // since C++20
149
template<class traits>
150
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char8_t*) = delete;        // since C++20
151
template<class traits>
152
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char16_t*) = delete;       // since C++20
153
template<class traits>
154
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>&, const char32_t*) = delete;       // since C++20
155
template<class traits>
156
basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char8_t*) = delete;  // since C++20
157
template<class traits>
158
basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char16_t*) = delete; // since C++20
159
template<class traits>
160
basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, const char32_t*) = delete; // since C++20
161

162
// [ostream.formatted.print], print functions
163
template<class... Args>                                                                                // since C++23
164
  void print(ostream& os, format_string<Args...> fmt, Args&&... args);
165
template<class... Args>                                                                                // since C++23
166
  void println(ostream& os, format_string<Args...> fmt, Args&&... args);
167
void println(ostream& os);                                                                             // since C++26
168

169
void vprint_unicode(ostream& os, string_view fmt, format_args args);                                   // since C++23
170
void vprint_nonunicode(ostream& os, string_view fmt, format_args args);                                // since C++23
171
}  // std
172

173
*/
174

175
#include <__config>
176
#include <__ostream/basic_ostream.h>
177
#include <__ostream/print.h>
178
#include <version>
179

180
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
181
#  pragma GCC system_header
182
#endif
183

184
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
185
#  include <atomic>
186
#  include <concepts>
187
#  include <cstdio>
188
#  include <cstdlib>
189
#  include <iosfwd>
190
#  include <iterator>
191
#  include <stdexcept>
192
#  include <type_traits>
193
#endif
194

195
#endif // _LIBCPP_OSTREAM
196

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.