Extern :
- C3d aggiornamento delle librerie.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user