6 #include "testing/testing.h"
17 throw std::exception();
23 MyValue(
const MyValue &
UNUSED(other))
26 throw std::exception();
39 TEST(memory_utils, DefaultConstructN_ActuallyCallsConstructor)
41 constexpr
int amount = 10;
51 TEST(memory_utils, DefaultConstructN_StrongExceptionSafety)
53 constexpr
int amount = 20;
61 TEST(memory_utils, UninitializedCopyN_ActuallyCopies)
63 constexpr
int amount = 5;
78 TEST(memory_utils, UninitializedCopyN_StrongExceptionSafety)
80 constexpr
int amount = 10;
93 TEST(memory_utils, UninitializedFillN_ActuallyCopies)
95 constexpr
int amount = 10;
110 TEST(memory_utils, UninitializedFillN_StrongExceptionSafety)
112 constexpr
int amount = 20;
126 virtual void mymethod(){};
130 void mymethod()
override
135 static_assert(is_convertible_pointer_v<int *, int *>);
136 static_assert(is_convertible_pointer_v<int *, const int *>);
137 static_assert(is_convertible_pointer_v<int *, int *const>);
138 static_assert(is_convertible_pointer_v<int *, const int *const>);
139 static_assert(!is_convertible_pointer_v<const int *, int *>);
140 static_assert(!is_convertible_pointer_v<int, int *>);
141 static_assert(!is_convertible_pointer_v<int *, int>);
142 static_assert(is_convertible_pointer_v<TestBaseClass *, const TestBaseClass *>);
143 static_assert(!is_convertible_pointer_v<const TestBaseClass *, TestBaseClass *>);
144 static_assert(is_convertible_pointer_v<TestChildClass *, TestBaseClass *>);
145 static_assert(!is_convertible_pointer_v<TestBaseClass *, TestChildClass *>);
146 static_assert(is_convertible_pointer_v<const TestChildClass *, const TestBaseClass *>);
147 static_assert(!is_convertible_pointer_v<TestBaseClass, const TestChildClass *>);
148 static_assert(!is_convertible_pointer_v<float3, float *>);
149 static_assert(!is_convertible_pointer_v<float *, float3>);
150 static_assert(!is_convertible_pointer_v<int **, int *>);
151 static_assert(!is_convertible_pointer_v<int *, int **>);
152 static_assert(is_convertible_pointer_v<int **, int **>);
153 static_assert(is_convertible_pointer_v<const int **, const int **>);
154 static_assert(!is_convertible_pointer_v<const int **, int **>);
155 static_assert(!is_convertible_pointer_v<int *const *, int **>);
156 static_assert(!is_convertible_pointer_v<int *const *const, int **>);
157 static_assert(is_convertible_pointer_v<int **, int **const>);
158 static_assert(is_convertible_pointer_v<int **, int *const *>);
159 static_assert(is_convertible_pointer_v<int **, int const *const *>);
161 static_assert(is_span_convertible_pointer_v<int *, int *>);
162 static_assert(is_span_convertible_pointer_v<int *, const int *>);
163 static_assert(!is_span_convertible_pointer_v<const int *, int *>);
164 static_assert(is_span_convertible_pointer_v<const int *, const int *>);
165 static_assert(is_span_convertible_pointer_v<const int *, const void *>);
166 static_assert(!is_span_convertible_pointer_v<const int *, void *>);
167 static_assert(is_span_convertible_pointer_v<int *, void *>);
168 static_assert(is_span_convertible_pointer_v<int *, const void *>);
169 static_assert(!is_span_convertible_pointer_v<TestBaseClass *, TestChildClass *>);
170 static_assert(!is_span_convertible_pointer_v<TestChildClass *, TestBaseClass *>);
172 static_assert(is_same_any_v<int, float, bool, int>);
173 static_assert(is_same_any_v<int, int, float>);
174 static_assert(is_same_any_v<int, int>);
175 static_assert(!is_same_any_v<int, float, bool>);
176 static_assert(!is_same_any_v<int, float>);
177 static_assert(!is_same_any_v<int>);
179 TEST(memory_utils, ScopedDefer1)
192 TEST(memory_utils, ScopedDefer2)
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
#define BLI_SCOPED_DEFER(function_to_defer)
Strict compiler flags for areas of code we want to ensure don't do conversions without us knowing abo...
ccl_global float * buffer
TEST(any, DefaultConstructor)
void default_construct_n(T *ptr, int64_t n)
void uninitialized_fill_n(T *dst, int64_t n, const T &value)
void destruct_n(T *ptr, int64_t n)
void uninitialized_copy_n(const T *src, int64_t n, T *dst)