- 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
+34 -32
View File
@@ -18,10 +18,6 @@
#include <io_define.h>
#ifdef __DEBUG_MEMORY_ALLOCATE_FREE_
#include <typeinfo.h>
#endif // __DEBUG_MEMORY_ALLOCATE_FREE_
FORVARD_DECL_TEMPLATE_TYPENAME( class FDPArray );
FORVARD_DECL_TEMPLATE_TYPENAME( void destroy_array ( FDPArray<Type> & ) );
@@ -109,11 +105,11 @@ public:
void operator delete ( void *, size_t );
#endif // __DEBUG_MEMORY_ALLOCATE_FREE_
#ifdef STANDARD_CPP11_RVALUE_REFERENCES
#ifdef C3D_STANDARD_CXX_11_PARTIAL
public:
FDPArray( FDPArray<Type> && ); ///< \ru Конструктор перемещения массива. \en Constructor of an array moving.
FDPArray<Type> & operator = ( FDPArray<Type> && ); ///< \ru Оператор перемещения массива. \en Operator of an array moving.
#endif // STANDARD_CPP11_RVALUE_REFERENCES
#endif // C3D_STANDARD_CXX_11_PARTIAL
};
@@ -135,7 +131,7 @@ inline void FDPArray<Type>::operator delete( void * ptr, size_t size ) {
}
#endif // __DEBUG_MEMORY_ALLOCATE_FREE_
#ifdef STANDARD_CPP11_RVALUE_REFERENCES
#ifdef C3D_STANDARD_CXX_11_PARTIAL
//------------------------------------------------------------------------------
// \ru Конструктор перемещения массива. \en Constructor of an array moving.
// ---
@@ -164,7 +160,7 @@ FDPArray<Type> & FDPArray<Type>::operator = ( FDPArray<Type> && _Right )
}
return (*this);
}
#endif // STANDARD_CPP11_RVALUE_REFERENCES
#endif // C3D_STANDARD_CXX_11_PARTIAL
//------------------------------------------------------------------------------
// \ru деструктор массива \en destructor of array
// ---
@@ -222,23 +218,26 @@ template <class Type>
inline Type* FDPArray<Type>::RemoveInd( size_t delIndex, DelType del ) {
PRECONDITION( delIndex < RPArray<Type>::count );
const Type **d = RPArray<Type>::GetAddr() + delIndex;
Type * r = 0;
if ( delIndex < RPArray<Type>::count ) {
const Type ** d = RPArray<Type>::GetAddr() + delIndex;
Type *r = (Type*) *d;
r = (Type *)*d;
// \ru сначала приведем в порядок массив ... \en put an array in order at first ...
memmove( d, d+1, (RPArray<Type>::count - delIndex - 1) * SIZE_OF_POINTER );
RPArray<Type>::count--;
// \ru сначала приведем в порядок массив ... \en put an array in order at first ...
memmove( d, d + 1, (RPArray<Type>::count - delIndex - 1) * SIZE_OF_POINTER );
RPArray<Type>::count--;
// \ru ...а потом будем удалять \en ... and then delete
if ( fDestroy && (del==Delete || del==defDelete) ) {
PRECONDITION( !r || nowDeletedElem != r );
nowDeletedElem = r;
// \ru ...а потом будем удалять \en ... and then delete
if ( fDestroy && ( del == Delete || del == defDelete ) ) {
PRECONDITION( !r || nowDeletedElem != r );
nowDeletedElem = r;
(*fDestroy)(r);
r = 0;
( *fDestroy )( r );
r = 0;
nowDeletedElem = 0;
nowDeletedElem = 0;
}
}
return r;
@@ -264,23 +263,26 @@ template <class Type>
inline Type* FDPArray<Type>::DestroyInd( size_t delIndex, typename FDPArray<Type>::DestroyFunc fd ) {
PRECONDITION( delIndex < RPArray<Type>::count );
const Type **d = RPArray<Type>::GetAddr() + delIndex;
Type * r = 0;
if ( delIndex < RPArray<Type>::count ) {
const Type ** d = RPArray<Type>::GetAddr() + delIndex;
Type *r = (Type*) *d;
r = (Type *)*d;
// \ru сначала приведем в порядок массив ... \en put an array in order at first ...
memmove( d, d+1, (RPArray<Type>::count - delIndex - 1) * SIZE_OF_POINTER );
RPArray<Type>::count--;
// \ru сначала приведем в порядок массив ... \en put an array in order at first ...
memmove( d, d + 1, (RPArray<Type>::count - delIndex - 1) * SIZE_OF_POINTER );
RPArray<Type>::count--;
// \ru ...а потом будем удалять \en ... and then delete
if ( fd ) {
PRECONDITION( !r || nowDeletedElem != r ); // \ru Bременно, для отладки \en Temporarily, for debugging.
nowDeletedElem = r;
// \ru ...а потом будем удалять \en ... and then delete
if ( fd ) {
PRECONDITION( !r || nowDeletedElem != r ); // \ru Bременно, для отладки \en Temporarily, for debugging.
nowDeletedElem = r;
(*fd)(r);
r = 0;
( *fd )( r );
r = 0;
nowDeletedElem = 0;
nowDeletedElem = 0;
}
}
return r;