22 #ifndef _vctDynamicNArrayRefOwner_h
23 #define _vctDynamicNArrayRefOwner_h
35 template<
class _elementType, vct::
size_type _dimension>
61 const nsize_type &
sizes,
64 SetRef(data, sizes, strides);
68 const nsize_type &
sizes,
86 const nsize_type &
sizes(
void)
const
149 indicesRef(reinterpret_cast<stride_type *>(const_cast<size_type *>(indices.Pointer())));
162 const_pointer
Pointer(
const nsize_type & indices)
const
165 indicesRef(reinterpret_cast<stride_type *>(const_cast<size_type *>(indices.Pointer())));
237 if (sorted_strides[i - 1] == sorted_strides[i]) {
238 if (sorted_sizes[i - 1] >= sorted_sizes[i]) {
242 if (sorted_strides[i - 1] > sorted_strides[i]) {
248 std::swap(sorted_strides[i - 1], sorted_strides[i]);
249 std::swap(sorted_sizes[i - 1], sorted_sizes[i]);
257 typename nsize_type::const_reverse_iterator sizesIter = sorted_sizes.rbegin();
258 typename nstride_type::const_reverse_iterator stridesIter = sorted_strides.rbegin();
259 const typename nstride_type::const_reverse_iterator stridesEnd = sorted_strides.rend();
263 if (stridesIter != stridesEnd) {
264 if (*stridesIter != 1) {
274 stridesIter != stridesEnd;
275 ++stridesIter, ++sizesIter) {
276 sizesIter_value = (*sizesIter == 0) ? 1 : *sizesIter;
277 if (*stridesIter != static_cast<stride_type>(sizesIter_value) * previous_stride) {
281 previous_stride = *stridesIter;
294 #endif // _vctDynamicNArrayRefOwner_h
size_t index_type
Definition: vctContainerTraits.h:36
VCT_NARRAY_TRAITS_TYPEDEFS(DIMENSION)
vctVarStrideNArrayConstIterator< ThisType, true > const_iterator
Definition: vctDynamicNArrayRefOwner.h:49
VCT_CONTAINER_TRAITS_TYPEDEFS(_elementType)
bool IsCompact(void) const
Definition: vctDynamicNArrayRefOwner.h:212
const_iterator begin(void) const
Definition: vctDynamicNArrayRefOwner.h:179
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
const_reverse_iterator rbegin(void) const
Definition: vctDynamicNArrayRefOwner.h:200
const_reverse_iterator rend(void) const
Definition: vctDynamicNArrayRefOwner.h:206
difference_type stride(dimension_type dimension) const
Definition: vctDynamicNArrayRefOwner.h:129
nstride_type StridesMember
Definition: vctDynamicNArrayRefOwner.h:220
pointer Data
Definition: vctDynamicNArrayRefOwner.h:221
An implementation of the ``abstract'' vctFixedSizeConstVectorBase.
Definition: vctFixedSizeConstVectorRef.h:50
size_t size_type
Definition: vctContainerTraits.h:35
iterator begin(void)
Definition: vctDynamicNArrayRefOwner.h:169
Declaration of vctNArrayConstIterator and vctVarStrideNArrayIterator.
reverse_iterator rbegin(void)
Definition: vctDynamicNArrayRefOwner.h:189
bool IsCompactMember
Definition: vctDynamicNArrayRefOwner.h:222
const_pointer Pointer(const nsize_type &indices) const
Definition: vctDynamicNArrayRefOwner.h:162
void UpdateCachedData(void)
Definition: vctDynamicNArrayRefOwner.h:224
vctDynamicNArrayRefOwner(pointer data, const nsize_type &sizes, const nstride_type &strides)
Definition: vctDynamicNArrayRefOwner.h:60
iterator end(void)
Definition: vctDynamicNArrayRefOwner.h:174
const nstride_type & strides(void) const
Definition: vctDynamicNArrayRefOwner.h:121
Definition: vctDynamicNArrayRefOwner.h:36
dimension_type dimension(void) const
Definition: vctDynamicNArrayRefOwner.h:79
ptrdiff_t difference_type
Definition: vctContainerTraits.h:38
Definition: vctForwardDeclarations.h:77
const_pointer Pointer(void) const
Definition: vctDynamicNArrayRefOwner.h:155
vctVarStrideNArrayConstIterator< ThisType, false > const_reverse_iterator
Definition: vctDynamicNArrayRefOwner.h:51
pointer Pointer(void)
Definition: vctDynamicNArrayRefOwner.h:139
pointer Pointer(const nindex_type &indices)
Definition: vctDynamicNArrayRefOwner.h:146
const_iterator end(void) const
Definition: vctDynamicNArrayRefOwner.h:184
reverse_iterator rend(void)
Definition: vctDynamicNArrayRefOwner.h:195
ptrdiff_t stride_type
Definition: vctContainerTraits.h:37
Definition: vctForwardDeclarations.h:74
size_type size(void) const
Definition: vctDynamicNArrayRefOwner.h:111
nsize_type SizesMember
Definition: vctDynamicNArrayRefOwner.h:219
void SetRef(pointer data, const nsize_type &sizes, const nstride_type &strides)
Definition: vctDynamicNArrayRefOwner.h:67
const nsize_type & sizes(void) const
Definition: vctDynamicNArrayRefOwner.h:86
vctVarStrideNArrayIterator< ThisType, false > reverse_iterator
Definition: vctDynamicNArrayRefOwner.h:50
vctDynamicNArrayRefOwner< _elementType, DIMENSION > ThisType
Definition: vctDynamicNArrayRefOwner.h:45
vctVarStrideNArrayIterator< ThisType, true > iterator
Definition: vctDynamicNArrayRefOwner.h:48
size_type size(dimension_type dimension) const
Definition: vctDynamicNArrayRefOwner.h:97
Definition: vctDynamicNArrayRefOwner.h:40
vctDynamicNArrayRefOwner()
Definition: vctDynamicNArrayRefOwner.h:54