| 18 | typename mem_manager = default_memory_manager |
| 19 | > |
| 20 | class array : public enumerable<T> |
| 21 | { |
| 22 | |
| 23 | /*! |
| 24 | INITIAL VALUE |
| 25 | - array_size == 0 |
| 26 | - max_array_size == 0 |
| 27 | - array_elements == 0 |
| 28 | - pos == 0 |
| 29 | - last_pos == 0 |
| 30 | - _at_start == true |
| 31 | |
| 32 | CONVENTION |
| 33 | - array_size == size() |
| 34 | - max_array_size == max_size() |
| 35 | - if (max_array_size > 0) |
| 36 | - array_elements == pointer to max_array_size elements of type T |
| 37 | - else |
| 38 | - array_elements == 0 |
| 39 | |
| 40 | - if (array_size > 0) |
| 41 | - last_pos == array_elements + array_size - 1 |
| 42 | - else |
| 43 | - last_pos == 0 |
| 44 | |
| 45 | |
| 46 | - at_start() == _at_start |
| 47 | - current_element_valid() == pos != 0 |
| 48 | - if (current_element_valid()) then |
| 49 | - *pos == element() |
| 50 | !*/ |
| 51 | |
| 52 | public: |
| 53 | |
| 54 | // These typedefs are here for backwards compatibility with old versions of dlib. |
| 55 | typedef array kernel_1a; |
| 56 | typedef array kernel_1a_c; |
| 57 | typedef array kernel_2a; |
| 58 | typedef array kernel_2a_c; |
| 59 | typedef array sort_1a; |
| 60 | typedef array sort_1a_c; |
| 61 | typedef array sort_1b; |
| 62 | typedef array sort_1b_c; |
| 63 | typedef array sort_2a; |
| 64 | typedef array sort_2a_c; |
| 65 | typedef array sort_2b; |
| 66 | typedef array sort_2b_c; |
| 67 | typedef array expand_1a; |
| 68 | typedef array expand_1a_c; |
| 69 | typedef array expand_1b; |
| 70 | typedef array expand_1b_c; |
| 71 | typedef array expand_1c; |
| 72 | typedef array expand_1c_c; |
| 73 | typedef array expand_1d; |
| 74 | typedef array expand_1d_c; |
| 75 | |
| 76 | |
| 77 | |