Foundation Classes, math_DoubleTab - Rework to NCollection container (#607)

- Refactors `math_DoubleTab` to use `NCollection_Array2` as its underlying container
- Eemoves the old C‐array implementation, and updates collection classes to improve move semantics and bounds manipulation. 
- Rework `math_DoubleTab` to wrap `NCollection_Array2`, with buffer optimization for small sizes  
- Enhance `NCollection_Array2` and `NCollection_Array1` with proper move semantics and bound‐updating methods  
- Remove legacy `.lxx`/`.cxx` implementations, add tests and update CMake file lists
This commit is contained in:
Pasukhin Dmitry
2025-07-13 10:58:44 +01:00
committed by GitHub
parent 878cd2f6d6
commit ceafdb0436
13 changed files with 724 additions and 233 deletions
@@ -171,7 +171,10 @@ public:
myPointer(theOther.myPointer),
myIsOwner(theOther.myIsOwner)
{
theOther.myIsOwner = false;
theOther.myIsOwner = false;
theOther.myPointer = nullptr;
theOther.mySize = 0;
theOther.myLowerBound = 1;
}
virtual ~NCollection_Array1()
@@ -241,11 +244,14 @@ public:
destroy(myPointer, 0, mySize);
myAllocator.deallocate(myPointer, mySize);
}
myLowerBound = theOther.myLowerBound;
mySize = theOther.mySize;
myPointer = theOther.myPointer;
myIsOwner = theOther.myIsOwner;
theOther.myIsOwner = false;
myLowerBound = theOther.myLowerBound;
mySize = theOther.mySize;
myPointer = theOther.myPointer;
myIsOwner = theOther.myIsOwner;
theOther.myIsOwner = false;
theOther.myPointer = nullptr;
theOther.mySize = 0;
theOther.myLowerBound = 1;
return *this;
}