Mercurial > octave-nkf
comparison liboctave/dim-vector.h @ 10420:3373fdc0b14a
use macro for 2 and 3 arg dim_vector constructors
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 17 Mar 2010 09:34:43 -0400 |
parents | afe44ee90cbd |
children | 8615b55b5caf |
comparison
equal
deleted
inserted
replaced
10419:afe44ee90cbd | 10420:3373fdc0b14a |
---|---|
132 } | 132 } |
133 } | 133 } |
134 | 134 |
135 public: | 135 public: |
136 | 136 |
137 // The constructor | |
138 // | |
139 // dim_vector (n) | |
140 // | |
141 // creates an dimension vector with N rows and 1 column. It is | |
142 // deprecated because of the potentiol for confusion that it causes. | |
143 // Additional constructors of the form | |
144 // | |
145 // dim_vector (r, c) | |
146 // dim_vector (r, c, p) | |
147 // dim_vector (d1, d2, d3, d4, ...) | |
148 // | |
149 // are available for up to 7 dimensions. | |
150 | |
137 explicit dim_vector (octave_idx_type n) GCC_ATTR_DEPRECATED | 151 explicit dim_vector (octave_idx_type n) GCC_ATTR_DEPRECATED |
138 : rep (newrep (2)) | 152 : rep (newrep (2)) |
139 { | 153 { |
140 rep[0] = n; | 154 rep[0] = n; |
141 rep[1] = 1; | 155 rep[1] = 1; |
142 } | 156 } |
143 | 157 |
144 dim_vector (octave_idx_type r, octave_idx_type c) | |
145 : rep (newrep (2)) | |
146 { | |
147 rep[0] = r; | |
148 rep[1] = c; | |
149 } | |
150 | |
151 dim_vector (octave_idx_type r, octave_idx_type c, octave_idx_type p) | |
152 : rep (newrep (3)) | |
153 { | |
154 rep[0] = r; | |
155 rep[1] = c; | |
156 rep[2] = p; | |
157 } | |
158 | |
159 #define ASSIGN_REP(i) rep[i] = d ## i; | 158 #define ASSIGN_REP(i) rep[i] = d ## i; |
160 #define DIM_VECTOR_CTOR(N) \ | 159 #define DIM_VECTOR_CTOR(N) \ |
161 dim_vector (OCT_MAKE_DECL_LIST(octave_idx_type, d, N)) \ | 160 dim_vector (OCT_MAKE_DECL_LIST (octave_idx_type, d, N)) \ |
162 : rep (newrep (N)) \ | 161 : rep (newrep (N)) \ |
163 { \ | 162 { \ |
164 OCT_ITERATE_MACRO(ASSIGN_REP, N) \ | 163 OCT_ITERATE_MACRO (ASSIGN_REP, N) \ |
165 } | 164 } |
166 | 165 |
167 // Add more if needed. | 166 // Add more if needed. |
168 DIM_VECTOR_CTOR(4) | 167 DIM_VECTOR_CTOR (2) |
169 DIM_VECTOR_CTOR(5) | 168 DIM_VECTOR_CTOR (3) |
170 DIM_VECTOR_CTOR(6) | 169 DIM_VECTOR_CTOR (4) |
171 DIM_VECTOR_CTOR(7) | 170 DIM_VECTOR_CTOR (5) |
171 DIM_VECTOR_CTOR (6) | |
172 DIM_VECTOR_CTOR (7) | |
172 | 173 |
173 #undef ASSIGN_REP | 174 #undef ASSIGN_REP |
174 #undef DIM_VECTOR_CTOR | 175 #undef DIM_VECTOR_CTOR |
175 | 176 |
176 dim_vector (const octave_idx_type *vec, size_t vec_size) | 177 dim_vector (const octave_idx_type *vec, size_t vec_size) |