18 #define ARRAY_ASSERT(x)
25 #ifdef ARRAY_STATISTICS
26 struct array_statistics {
27 int32_t const_element;
31 int32_t operator_overload;
32 int32_t const_operator_overload;
36 int32_t array_element;
39 #define DECLARE_ARRAY_STATISTICS struct array_statistics as
40 #define INIT_ARRAY_STATISTICS memset(&as, 0, sizeof(as))
41 #define PRINT_ARRAY_STATISTICS \
42 SG_DEBUG("access statistics:\n" \
43 "const element %i\n" \
47 "operator_overload[] %i\n" \
48 "const_operator_overload[] %i\n" \
52 "array_element %i\n", \
57 as.operator_overload, \
58 as.const_operator_overload, \
65 #define INCREMENT_ARRAY_STATISTICS_VALUE(_val_) ((CArray<T>*)this)->as._val_++
68 #define DECLARE_ARRAY_STATISTICS
69 #define INIT_ARRAY_STATISTICS
70 #define PRINT_ARRAY_STATISTICS
71 #define INCREMENT_ARRAY_STATISTICS_VALUE(_val_)
103 CArray(T* p_array, int32_t p_array_size,
bool p_free_array=
true,
104 bool p_copy_array=
false)
108 set_array(p_array, p_array_size, p_free_array, p_copy_array);
116 CArray(
const T* p_array, int32_t p_array_size)
134 inline virtual const char*
get_name()
const {
return "Array"; }
180 array[i]=const_elem ;
205 array[index]=p_element;
245 return p_array[index];
285 inline void set_array(T* p_array, int32_t p_array_size,
bool p_free_array=
true,
286 bool copy_array=
false)
293 memcpy(this->
array, p_array, p_array_size*
sizeof(T));
306 inline void set_array(
const T* p_array, int32_t p_array_size)
311 memcpy(this->
array, p_array, p_array_size*
sizeof(T));