- C3d aggiornamento delle librerie.
This commit is contained in:
Dario Sassi
2020-09-14 16:42:31 +00:00
parent 555eae9594
commit e8f0fa2d27
332 changed files with 59308 additions and 52918 deletions
+20 -20
View File
@@ -17,10 +17,6 @@
#include <templ_rp_array.h>
#ifdef __DEBUG_MEMORY_ALLOCATE_FREE_
#include <typeinfo.h>
#endif // __DEBUG_MEMORY_ALLOCATE_FREE_
// \ru Реализация методов для чтения/записи массива лежит в templ_p_array_rw.h \en Implementation of methods for reading/writing of array is located in templ_p_array_rw.h
@@ -262,22 +258,26 @@ template <class Type>
inline Type * PArray<Type>::RemoveInd( size_t delIndex, DelType del ) {
PRECONDITION( delIndex < RPArray<Type>::count );
const Type **d = RPArray<Type>::GetAddr() + delIndex;
Type *r = (Type*)*d;
Type * r = 0;
// \ru сначала приведем в порядок массив ... \en put an array in order at first ...
memmove( d, d+1, (RPArray<Type>::count - delIndex - 1) * SIZE_OF_POINTER );
RPArray<Type>::count--;
if ( delIndex < RPArray<Type>::count ) {
const Type ** d = RPArray<Type>::GetAddr() + delIndex;
r = (Type *)*d;
// \ru ... а теперь будем удалять \en ... and now we will delete
if ( del==Delete || (del==defDelete && owns) ) {
PRECONDITION( !r || nowDeletedElem != r );
nowDeletedElem = r;
// \ru сначала приведем в порядок массив ... \en put an array in order at first ...
memmove( d, d + 1, (RPArray<Type>::count - delIndex - 1) * SIZE_OF_POINTER );
RPArray<Type>::count--;
delete r;
r = 0;
// \ru ... а теперь будем удалять \en ... and now we will delete
if ( del == Delete || ( del == defDelete && owns ) ) {
PRECONDITION( !r || nowDeletedElem != r );
nowDeletedElem = r;
nowDeletedElem = 0;
delete r;
r = 0;
nowDeletedElem = 0;
}
}
return r;
@@ -366,7 +366,7 @@ bool set_Parray_size( PArray<Type> & arr, size_t newSize, bool clear ) {
// ---
template <class Type>
inline void PIArray<Type>::ForEachI( ParIteratorFunc func, void * pars ) const {
C3D_ASSERT( PArray<Type>::nowDeletedElem == 0 );
PRECONDITION( PArray<Type>::nowDeletedElem == 0 );
for_each_in_array( *this, func, pars );
}
@@ -376,7 +376,7 @@ inline void PIArray<Type>::ForEachI( ParIteratorFunc func, void * pars ) const {
// ---
template <class Type>
inline size_t PIArray<Type>::FirstThatI( CompareFunc func, void * pars, size_t from ) const {
C3D_ASSERT( PArray<Type>::nowDeletedElem == 0 );
PRECONDITION( PArray<Type>::nowDeletedElem == 0 );
return first_that_in_array( *this, func, pars, from );
}
@@ -398,7 +398,7 @@ inline size_t PIArray<Type>::FirstThatI( CompareFunc func, void * pars, size_t f
// ---
template <class Type>
inline void PMIArray<Type>::ForEach( ParIteratorMemFunc func, void * pars ) const {
C3D_ASSERT( PArray<Type>::nowDeletedElem == 0 );
PRECONDITION( PArray<Type>::nowDeletedElem == 0 );
for_each_in_array( *this, func, pars );
}
@@ -408,7 +408,7 @@ inline void PMIArray<Type>::ForEach( ParIteratorMemFunc func, void * pars ) cons
// ---
template <class Type>
inline size_t PMIArray<Type>::FirstThat( CompareMemFunc func, void * pars, size_t from ) const {
C3D_ASSERT( PArray<Type>::nowDeletedElem == 0 );
PRECONDITION( PArray<Type>::nowDeletedElem == 0 );
return first_that_in_array( *this, func, pars, from );
}