Skip to content

Commit 478a024

Browse files
committed
Add and fix stubs
1 parent b234b22 commit 478a024

File tree

11 files changed

+126
-61
lines changed

11 files changed

+126
-61
lines changed

cpp/common/test/includes/standard-library/fstream.h

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,36 @@ class basic_fstream : public std::basic_iostream<CharT, Traits> {
1010
// constructors
1111
basic_fstream();
1212
explicit basic_fstream(const char *s);
13+
basic_fstream(const basic_fstream &);
14+
basic_fstream(basic_fstream &&);
1315
// members
1416
bool is_open() const;
1517
void open(const string &s);
1618
void close();
1719
};
20+
21+
template <typename CharT, class Traits> class basic_ifstream {
22+
public:
23+
basic_ifstream();
24+
basic_ifstream(const basic_ifstream &);
25+
basic_ifstream(basic_ifstream &&);
26+
basic_ifstream(const char *);
27+
};
28+
29+
template <typename CharT, class Traits> class basic_ofstream {
30+
public:
31+
basic_ofstream();
32+
basic_ofstream(const basic_ofstream &);
33+
basic_ofstream(basic_ofstream &&);
34+
basic_ofstream(const char *);
35+
};
36+
1837
using fstream = basic_fstream<char>;
38+
using wfstream = basic_fstream<wchar_t>;
39+
using ifstream = basic_ifstream<char>;
40+
using wifstream = basic_ifstream<wchar_t>;
41+
using ofstream = basic_ofstream<char>;
42+
using wofstream = basic_ofstream<wchar_t>;
1943
} // namespace std
2044

21-
#endif // _GHLIBCPP_FSTREAM
45+
#endif // _GHLIBCPP_FSTREAM

cpp/common/test/includes/standard-library/functional.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ template <class F, class T> binder1st<F> bind1st(const F &f, const T &x);
4545
template <class F, class T> binder2nd<F> bind2nd(const F &f, const T &x);
4646

4747
template <class T> class reference_wrapper {
48+
public:
4849
reference_wrapper(T &ref) : ref(addressof(ref)) {}
50+
reference_wrapper(const reference_wrapper&);
4951
reference_wrapper(T &&ref) = delete;
5052

5153
operator T &() const { return *ref; }

cpp/common/test/includes/standard-library/istream.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,4 @@ getline(basic_istream<charT, traits> &is,
9292
typedef basic_istream<char> istream;
9393
} // namespace std
9494

95-
#endif // _LIBCPP_ISTREAM
95+
#endif // _LIBCPP_ISTREAM

cpp/common/test/includes/standard-library/map

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
1010
typename _Alloc = std::allocator<_Key>>
1111
class multimap {
1212
public:
13+
multimap();
14+
multimap(const multimap&);
15+
multimap(multimap&&);
16+
multimap(std::initializer_list<std::pair<const _Key, _Tp>>);
1317
typedef std::pair<const _Key, _Tp> value_type;
1418
typedef std::__iterator<value_type> iterator;
1519
typedef std::__iterator<value_type> const_iterator;
@@ -18,14 +22,16 @@ public:
1822
iterator end();
1923
const_iterator cbegin();
2024
const_iterator cend();
21-
22-
multimap();
2325
};
2426

2527
template <typename _Key, typename _Tp, typename _Compare = std::less<_Key>,
2628
typename _Alloc = std::allocator<_Key>>
2729
class map {
2830
public:
31+
map();
32+
map(const map&);
33+
map(map&&);
34+
map(std::initializer_list<std::pair<const _Key, _Tp>>);
2935
typedef std::pair<const _Key, _Tp> value_type;
3036
typedef std::__iterator<value_type> iterator;
3137
typedef std::__iterator<value_type> const_iterator;
@@ -34,7 +40,5 @@ public:
3440
iterator end();
3541
const_iterator cbegin();
3642
const_iterator cend();
37-
38-
map();
3943
};
4044
} // namespace std

cpp/common/test/includes/standard-library/memory.h

Lines changed: 37 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@ class unique_ptr {
3535
T *get() { return ptr; }
3636
unique_ptr<T> &operator=(const unique_ptr &) = delete;
3737
unique_ptr<T> &operator=(unique_ptr &&) { return *this; }
38-
template <typename T> unique_ptr &operator=(unique_ptr<T> &&) {
39-
return *this;
40-
}
4138

4239
private:
4340
T *ptr;
@@ -185,107 +182,90 @@ template <typename T1> struct allocator_traits {
185182
};
186183

187184
// uninitialized_default_construct
188-
template <class T1>
189-
void uninitialized_default_construct(T1, T1);
185+
template <class T1> void uninitialized_default_construct(T1, T1);
190186

191187
template <class T1, class T2>
192-
void uninitialized_default_construct(T1&&, T2, T2);
188+
void uninitialized_default_construct(T1 &&, T2, T2);
193189

194190
// uninitialized_default_construct_n
195-
template <class T1, class T2>
196-
T1 uninitialized_default_construct_n(T1, T2);
191+
template <class T1, class T2> T1 uninitialized_default_construct_n(T1, T2);
197192

198193
template <class T1, class T2, class T3>
199-
T2 uninitialized_default_construct_n(T1&&, T2, T3);
194+
T2 uninitialized_default_construct_n(T1 &&, T2, T3);
200195

201196
// uninitialized_value_construct
202-
template <class T1>
203-
void uninitialized_value_construct(T1, T1);
197+
template <class T1> void uninitialized_value_construct(T1, T1);
204198

205-
template <class T1, class T2>
206-
void uninitialized_value_construct(T1&&, T2, T2);
199+
template <class T1, class T2> void uninitialized_value_construct(T1 &&, T2, T2);
207200

208201
// uninitialized_value_construct_n
209-
template <class T1, class T2>
210-
T1 uninitialized_value_construct_n(T1, T2);
202+
template <class T1, class T2> T1 uninitialized_value_construct_n(T1, T2);
211203

212204
template <class T1, class T2, class T3>
213-
T2 uninitialized_value_construct_n(T1&&, T2, T3);
205+
T2 uninitialized_value_construct_n(T1 &&, T2, T3);
214206

215207
// uninitialized_copy
216-
template <class T1, class T2>
217-
T2 uninitialized_copy(T1, T1, T2);
208+
template <class T1, class T2> T2 uninitialized_copy(T1, T1, T2);
218209

219210
template <class T1, class T2, class T3>
220-
T3 uninitialized_copy(T1&&, T2, T2, T3);
211+
T3 uninitialized_copy(T1 &&, T2, T2, T3);
221212

222213
// uninitialized_copy_n
223-
template <class T1, class T2, class T3>
224-
T3 uninitialized_copy_n(T1, T2, T3);
214+
template <class T1, class T2, class T3> T3 uninitialized_copy_n(T1, T2, T3);
225215

226216
template <class T1, class T2, class T3, class T4>
227-
T4 uninitialized_copy_n(T1&&, T2, T3, T4);
217+
T4 uninitialized_copy_n(T1 &&, T2, T3, T4);
228218

229219
// uninitialized_move
230-
template <class T1, class T2>
231-
T2 uninitialized_move(T1, T1, T2);
220+
template <class T1, class T2> T2 uninitialized_move(T1, T1, T2);
232221

233222
template <class T1, class T2, class T3>
234-
T3 uninitialized_move(T1&&, T2, T2, T3);
223+
T3 uninitialized_move(T1 &&, T2, T2, T3);
235224

236225
// uninitialized_move_n
237226
template <class T1, class T2, class T3>
238227
pair<T1, T3> uninitialized_move_n(T1, T2, T3);
239228

240229
template <class T1, class T2, class T3, class T4>
241-
pair<T2, T4> uninitialized_move_n(T1&&, T2, T3, T4);
230+
pair<T2, T4> uninitialized_move_n(T1 &&, T2, T3, T4);
242231

243232
// uninitialized_fill
244-
template <class T1, class T2>
245-
void uninitialized_fill(T1, T1, const T2&);
233+
template <class T1, class T2> void uninitialized_fill(T1, T1, const T2 &);
246234

247235
template <class T1, class T2, class T3>
248-
void uninitialized_fill(T1&&, T2, T2, const T3&);
236+
void uninitialized_fill(T1 &&, T2, T2, const T3 &);
249237

250238
// uninitialized_fill_n
251239
template <class T1, class T2, class T3>
252-
T1 uninitialized_fill_n(T1, T2, const T3&);
240+
T1 uninitialized_fill_n(T1, T2, const T3 &);
253241

254242
template <class T1, class T2, class T3, class T4>
255-
T2 uninitialized_fill_n(T1&&, T2, T3, const T4&);
243+
T2 uninitialized_fill_n(T1 &&, T2, T3, const T4 &);
256244

257245
// destroy_at
258-
template <class T1>
259-
void destroy_at(T1*);
246+
template <class T1> void destroy_at(T1 *);
260247

261248
// destroy
262-
template <class T1>
263-
void destroy(T1, T1);
249+
template <class T1> void destroy(T1, T1);
264250

265-
template <class T1, class T2>
266-
void destroy(T1&&, T2, T2);
251+
template <class T1, class T2> void destroy(T1 &&, T2, T2);
267252

268253
// destroy_n
269-
template <class T1, class T2>
270-
T1 destroy_n(T1, T2);
254+
template <class T1, class T2> T1 destroy_n(T1, T2);
271255

272-
template <class T1, class T2, class T3>
273-
T2 destroy_n(T1&&, T2, T3);
256+
template <class T1, class T2, class T3> T2 destroy_n(T1 &&, T2, T3);
274257

275258
// launder
276-
template <class T1>
277-
constexpr T1* launder(T1*) noexcept;
259+
template <class T1> constexpr T1 *launder(T1 *) noexcept;
278260

279261
// get_temporary_buffer / return_temporary_buffer (deprecated in C++17)
280262
template <class T>
281263
pair<T *, ptrdiff_t> get_temporary_buffer(ptrdiff_t n) noexcept;
282264

283-
template <class T>
284-
void return_temporary_buffer(T *p);
265+
template <class T> void return_temporary_buffer(T *p);
285266

286267
// raw_storage_iterator (deprecated in C++17)
287-
template <class OutputIterator, class T>
288-
class raw_storage_iterator {
268+
template <class OutputIterator, class T> class raw_storage_iterator {
289269
public:
290270
using iterator_category = output_iterator_tag;
291271
using value_type = void;
@@ -301,6 +281,16 @@ class raw_storage_iterator {
301281
OutputIterator base() const;
302282
};
303283

284+
template <typename T> class weak_ptr {
285+
public:
286+
weak_ptr();
287+
weak_ptr(const weak_ptr &);
288+
weak_ptr(weak_ptr &&);
289+
weak_ptr(const shared_ptr<T> &);
290+
};
291+
292+
template <typename T, typename Alloc, typename... Args>
293+
shared_ptr<T> allocate_shared(const Alloc &, Args &&...);
304294
} // namespace std
305295

306296
#endif // _GHLIBCPP_MEMORY

cpp/common/test/includes/standard-library/optional

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,4 +162,4 @@ constexpr optional<T> make_optional(initializer_list<U> ilist, Args &&...args);
162162

163163
} // namespace std
164164

165-
#endif // _GHLIBCPP_OPTIONAL
165+
#endif // _GHLIBCPP_OPTIONAL

cpp/common/test/includes/standard-library/set

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,33 @@ template <typename _Key, typename _Compare = std::less<_Key>,
88
typename _Alloc = std::allocator<_Key>>
99
class set {
1010
public:
11+
set();
12+
set(const set&);
13+
set(set&&);
14+
set(std::initializer_list<_Key>);
1115
typedef std::iterator<random_access_iterator_tag, _Key> iterator;
1216
typedef std::iterator<random_access_iterator_tag, _Key> const_iterator;
1317

1418
iterator begin();
1519
iterator end();
1620
const_iterator cbegin();
1721
const_iterator cend();
18-
19-
set();
2022
};
2123
template <typename _Key, typename _Compare = std::less<_Key>,
2224
typename _Alloc = std::allocator<_Key>>
2325
class multiset {
2426
public:
27+
multiset();
28+
multiset(const multiset&);
29+
multiset(multiset&&);
30+
multiset(std::initializer_list<_Key>);
2531
typedef std::iterator<random_access_iterator_tag, _Key> iterator;
2632
typedef std::iterator<random_access_iterator_tag, _Key> const_iterator;
2733

2834
iterator begin();
2935
iterator end();
3036
const_iterator cbegin();
3137
const_iterator cend();
32-
33-
multiset();
3438
};
3539

3640
} // namespace std

cpp/common/test/includes/standard-library/sstream.h

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,35 @@ namespace std {
77
template <class CharT, class Traits, class Allocator>
88
class basic_stringstream : public basic_iostream<CharT, Traits> {
99
public:
10-
basic_stringstream() {}
10+
basic_stringstream();
11+
basic_stringstream(const basic_stringstream &);
12+
basic_stringstream(basic_stringstream &&);
13+
basic_stringstream(const CharT *);
1114
};
15+
16+
template <typename CharT, class Traits, class Allocator>
17+
class basic_istringstream {
18+
public:
19+
basic_istringstream();
20+
basic_istringstream(const basic_istringstream &);
21+
basic_istringstream(basic_istringstream &&);
22+
basic_istringstream(const CharT *);
23+
};
24+
25+
template <typename CharT, class Traits, class Allocator>
26+
class basic_ostringstream {
27+
public:
28+
basic_ostringstream();
29+
basic_ostringstream(const basic_ostringstream &);
30+
basic_ostringstream(basic_ostringstream &&);
31+
};
32+
33+
using stringstream = basic_stringstream<char>;
34+
using wstringstream = basic_stringstream<wchar_t>;
35+
using istringstream = basic_istringstream<char>;
36+
using wistringstream = basic_istringstream<wchar_t>;
37+
using ostringstream = basic_ostringstream<char>;
38+
using wostringstream = basic_ostringstream<wchar_t>;
1239
} // namespace std
1340

14-
#endif // _GHLIBCPP_SSTREAM
41+
#endif // _GHLIBCPP_SSTREAM

cpp/common/test/includes/standard-library/string

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ public:
250250
void reserve(size_type new_cap = 0);
251251
};
252252

253+
using wstring = basic_string<wchar_t>;
254+
using u16string = basic_string<char16_t>;
255+
using u32string = basic_string<char32_t>;
256+
253257
template <class charT, class traits, class Allocator>
254258
basic_string<charT, traits, Allocator>
255259
operator+(const basic_string<charT, traits, Allocator> &lhs,

cpp/common/test/includes/standard-library/tuple.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33

44
namespace std {
55
// Definition
6-
template <typename... T1> class tuple {};
6+
template <typename... T1> class tuple {
7+
public:
8+
tuple();
9+
tuple(const tuple&);
10+
tuple(tuple&&);
11+
template<typename... UTypes> tuple(UTypes&&...);
12+
};
713

814
template <class... Types> std::tuple<Types...> make_tuple(Types &&...args);
915
struct ignore_t {

0 commit comments

Comments
 (0)