Skip to content

Commit 907f40b

Browse files
committed
Add missing stubs
1 parent 3c7b4c9 commit 907f40b

File tree

2 files changed

+94
-0
lines changed

2 files changed

+94
-0
lines changed

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

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define _GHLIBCPP_MEMORY
33
#include "exception.h"
44
#include "stddef.h"
5+
#include "utility.h"
56

67
namespace std {
78

@@ -166,6 +167,98 @@ template <typename T1> struct allocator_traits {
166167
static void deallocate(T1 &, pointer, size_type);
167168
};
168169

170+
// uninitialized_default_construct
171+
template <class T1>
172+
void uninitialized_default_construct(T1, T1);
173+
174+
template <class T1, class T2>
175+
void uninitialized_default_construct(T1&&, T2, T2);
176+
177+
// uninitialized_default_construct_n
178+
template <class T1, class T2>
179+
T1 uninitialized_default_construct_n(T1, T2);
180+
181+
template <class T1, class T2, class T3>
182+
T2 uninitialized_default_construct_n(T1&&, T2, T3);
183+
184+
// uninitialized_value_construct
185+
template <class T1>
186+
void uninitialized_value_construct(T1, T1);
187+
188+
template <class T1, class T2>
189+
void uninitialized_value_construct(T1&&, T2, T2);
190+
191+
// uninitialized_value_construct_n
192+
template <class T1, class T2>
193+
T1 uninitialized_value_construct_n(T1, T2);
194+
195+
template <class T1, class T2, class T3>
196+
T2 uninitialized_value_construct_n(T1&&, T2, T3);
197+
198+
// uninitialized_copy
199+
template <class T1, class T2>
200+
T2 uninitialized_copy(T1, T1, T2);
201+
202+
template <class T1, class T2, class T3>
203+
T3 uninitialized_copy(T1&&, T2, T2, T3);
204+
205+
// uninitialized_copy_n
206+
template <class T1, class T2, class T3>
207+
T3 uninitialized_copy_n(T1, T2, T3);
208+
209+
template <class T1, class T2, class T3, class T4>
210+
T4 uninitialized_copy_n(T1&&, T2, T3, T4);
211+
212+
// uninitialized_move
213+
template <class T1, class T2>
214+
T2 uninitialized_move(T1, T1, T2);
215+
216+
template <class T1, class T2, class T3>
217+
T3 uninitialized_move(T1&&, T2, T2, T3);
218+
219+
// uninitialized_move_n
220+
template <class T1, class T2, class T3>
221+
pair<T1, T3> uninitialized_move_n(T1, T2, T3);
222+
223+
template <class T1, class T2, class T3, class T4>
224+
pair<T2, T4> uninitialized_move_n(T1&&, T2, T3, T4);
225+
226+
// uninitialized_fill
227+
template <class T1, class T2>
228+
void uninitialized_fill(T1, T1, const T2&);
229+
230+
template <class T1, class T2, class T3>
231+
void uninitialized_fill(T1&&, T2, T2, const T3&);
232+
233+
// uninitialized_fill_n
234+
template <class T1, class T2, class T3>
235+
T1 uninitialized_fill_n(T1, T2, const T3&);
236+
237+
template <class T1, class T2, class T3, class T4>
238+
T2 uninitialized_fill_n(T1&&, T2, T3, const T4&);
239+
240+
// destroy_at
241+
template <class T1>
242+
void destroy_at(T1*);
243+
244+
// destroy
245+
template <class T1>
246+
void destroy(T1, T1);
247+
248+
template <class T1, class T2>
249+
void destroy(T1&&, T2, T2);
250+
251+
// destroy_n
252+
template <class T1, class T2>
253+
T1 destroy_n(T1, T2);
254+
255+
template <class T1, class T2, class T3>
256+
T2 destroy_n(T1&&, T2, T3);
257+
258+
// launder
259+
template <class T1>
260+
constexpr T1* launder(T1*) noexcept;
261+
169262
} // namespace std
170263

171264
#endif // _GHLIBCPP_MEMORY

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ typedef struct { // equivalent to that provided by clang and gcc
1313
typedef long ptrdiff_t;
1414
using nullptr_t = decltype(nullptr);
1515
using size_t = decltype(sizeof(char));
16+
enum class byte : unsigned char {};
1617
} // namespace std
1718

1819
#define offsetof(t, d) __builtin_offsetof(t, d) /*implementation-defined*/

0 commit comments

Comments
 (0)