76 my_i8 =
static_cast<const std::int8_t*
>(ptr);
81 my_u8 =
static_cast<const std::uint8_t*
>(ptr);
86 my_i16 =
static_cast<const std::int16_t*
>(ptr);
91 my_u16 =
static_cast<const std::uint16_t*
>(ptr);
96 my_i32 =
static_cast<const std::int32_t*
>(ptr);
101 my_u32 =
static_cast<const std::uint32_t*
>(ptr);
106 my_i64 =
static_cast<const std::int64_t*
>(ptr);
111 my_u64 =
static_cast<const std::uint64_t*
>(ptr);
115 my_f32 =
static_cast<const float*
>(ptr);
118 my_f64 =
static_cast<const double*
>(ptr);
128 SomeNumericArray(
const std::int8_t* ptr, std::size_t number) : my_i8(ptr), my_number(number), my_type(I8) {}
136 SomeNumericArray(
const std::uint8_t* ptr, std::size_t number) : my_u8(ptr), my_number(number), my_type(U8) {}
144 SomeNumericArray(
const std::int16_t* ptr, std::size_t number) : my_i16(ptr), my_number(number), my_type(I16) {}
152 SomeNumericArray(
const std::uint16_t* ptr, std::size_t number) : my_u16(ptr), my_number(number), my_type(U16) {}
160 SomeNumericArray(
const std::int32_t* ptr, std::size_t number) : my_i32(ptr), my_number(number), my_type(I32) {}
168 SomeNumericArray(
const std::uint32_t* ptr, std::size_t number) : my_u32(ptr), my_number(number), my_type(U32) {}
176 SomeNumericArray(
const std::int64_t* ptr, std::size_t number) : my_i64(ptr), my_number(number), my_type(I64) {}
184 SomeNumericArray(
const std::uint64_t* ptr, std::size_t number) : my_u64(ptr), my_number(number), my_type(U64) {}
191 SomeNumericArray(
const float* ptr, std::size_t number) : my_f32(ptr), my_number(number), my_type(F32) {}
197 SomeNumericArray(
const double* ptr, std::size_t number) : my_f64(ptr), my_number(number), my_type(F64) {}
201 const std::int8_t* my_i8 = NULL;
204 const std::uint8_t* my_u8 = NULL;
207 const std::int16_t* my_i16 = NULL;
210 const std::uint16_t* my_u16 = NULL;
213 const std::int32_t* my_i32 = NULL;
216 const std::uint32_t* my_u32 = NULL;
219 const std::int64_t* my_i64 = NULL;
222 const std::uint64_t* my_u64 = NULL;
224 const float* my_f32 = NULL;
225 const double* my_f64 = NULL;
227 std::size_t my_number;
335 std::size_t my_index;
342 return (*my_parent)[my_index];
350 return (*my_parent)[my_index + i];
359 return my_index == right.my_index;
367 return !(*
this == right);
375 return my_index < right.my_index;
383 return !(*
this < right);
391 return my_index > right.my_index;
399 return !(*
this > right);
463 return Iterator(my_parent, my_index + n);
471 return Iterator(my_parent, my_index - n);
480 return Iterator(it.my_parent, it.my_index + n);
489 if (right.my_index > my_index) {
490 out = right.my_index - my_index;
493 out = my_index - right.my_index;