Mercurial > hg > octave-nkf
comparison liboctave/array/Array.h @ 19576:af41e41ad28e
replace oct-mem.h inline indirections by standard function calls.
* Array.h: replaced copy_or_memcpy, fill_or_memset, and no_ctor_new
* Array.cc: replaced copy_or_memcpy, and fill_or_memset
* idx-vector.h: replaced copy_or_memcpy, and fill_or_memset
* idx-vector.cc: replaced copy_or_memcpy
* boolSparse.cc: replaced copy_or_memcpy, and fill_or_memset
* Sparse.h: replaced copy_or_memcpy
* Sparse.cc: replaced copy_or_memcpy, and fill_or_memset
* oct-binmap.h: replaced copy_or_memcpy
* mx-inlines.cc: new standard header dependency
* module.mk: removed header entry
* oct-mem.h: removed unused header
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Fri, 05 Dec 2014 13:08:36 +0100 |
parents | 1f4455ff2329 |
children | 4197fc428c7d |
comparison
equal
deleted
inserted
replaced
19575:5db5619fe54e | 19576:af41e41ad28e |
---|---|
36 #include "idx-vector.h" | 36 #include "idx-vector.h" |
37 #include "lo-traits.h" | 37 #include "lo-traits.h" |
38 #include "lo-utils.h" | 38 #include "lo-utils.h" |
39 #include "oct-sort.h" | 39 #include "oct-sort.h" |
40 #include "quit.h" | 40 #include "quit.h" |
41 #include "oct-mem.h" | |
42 #include "oct-refcount.h" | 41 #include "oct-refcount.h" |
43 | 42 |
44 //!Handles the reference counting for all the derived classes. | 43 //!Handles the reference counting for all the derived classes. |
45 template <class T> | 44 template <class T> |
46 class | 45 class |
56 T *data; | 55 T *data; |
57 octave_idx_type len; | 56 octave_idx_type len; |
58 octave_refcount<int> count; | 57 octave_refcount<int> count; |
59 | 58 |
60 ArrayRep (T *d, octave_idx_type l) | 59 ArrayRep (T *d, octave_idx_type l) |
61 : data (no_ctor_new<T> (l)), len (l), count (1) | 60 : data (new T [l]), len (l), count (1) |
62 { | |
63 copy_or_memcpy (l, d, data); | |
64 } | |
65 | |
66 template <class U> | |
67 ArrayRep (U *d, octave_idx_type l) | |
68 : data (no_ctor_new<T> (l)), len (l), count (1) | |
69 { | 61 { |
70 std::copy (d, d+l, data); | 62 std::copy (d, d+l, data); |
71 } | 63 } |
72 | 64 |
65 template <class U> | |
66 ArrayRep (U *d, octave_idx_type l) | |
67 : data (new T [l]), len (l), count (1) | |
68 { | |
69 std::copy (d, d+l, data); | |
70 } | |
71 | |
73 ArrayRep (void) : data (0), len (0), count (1) { } | 72 ArrayRep (void) : data (0), len (0), count (1) { } |
74 | 73 |
75 explicit ArrayRep (octave_idx_type n) | 74 explicit ArrayRep (octave_idx_type n) |
76 : data (no_ctor_new<T> (n)), len (n), count (1) { } | 75 : data (new T [n]), len (n), count (1) { } |
77 | 76 |
78 explicit ArrayRep (octave_idx_type n, const T& val) | 77 explicit ArrayRep (octave_idx_type n, const T& val) |
79 : data (no_ctor_new<T> (n)), len (n), count (1) | 78 : data (new T [n]), len (n), count (1) |
80 { | 79 { |
81 fill_or_memset (n, val, data); | 80 std::fill_n (data, n, val); |
82 } | 81 } |
83 | 82 |
84 ArrayRep (const ArrayRep& a) | 83 ArrayRep (const ArrayRep& a) |
85 : data (no_ctor_new<T> (a.len)), len (a.len), count (1) | 84 : data (new T [a.len]), len (a.len), count (1) |
86 { | 85 { |
87 copy_or_memcpy (a.len, a.data, data); | 86 std::copy (a.data, a.data + a.len, data); |
88 } | 87 } |
89 | 88 |
90 ~ArrayRep (void) { no_ctor_delete<T> (data); } | 89 ~ArrayRep (void) { delete [] data; } |
91 | 90 |
92 octave_idx_type length (void) const { return len; } | 91 octave_idx_type length (void) const { return len; } |
93 | 92 |
94 private: | 93 private: |
95 | 94 |