1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0025617: Avoid classes with a copy constructor and the default destructor or assignment operator

Removed useless user-defined copy constructors and assignment operators in BOPCol_NCVector, NCollection_Mat4, NCollection_Vec*

User-defined assignment operator matching copy constructor added in NCollection_StdAllocator.

Class VrmlData_DataMapOfShapeAppearance redefined as simple typedef to NCollection_DataMap<>.
This commit is contained in:
azn
2014-12-17 11:17:28 +03:00
committed by kgv
parent 4dff6a1bcb
commit 9533a86648
9 changed files with 15 additions and 110 deletions

View File

@@ -33,10 +33,6 @@ template <class Type> class BOPCol_NCVector
: NCollection_Vector<Type>(theIncrement, theAlloc) : NCollection_Vector<Type>(theIncrement, theAlloc)
{} {}
// //
BOPCol_NCVector(const BOPCol_NCVector& theOther)
: NCollection_Vector<Type>(theOther)
{}
//
Type& Append1 () Type& Append1 ()
{ {
Type& anAppended = *(Type*)this->expandV (this->myLength); Type& anAppended = *(Type*)this->expandV (this->myLength);

View File

@@ -49,21 +49,6 @@ public:
InitIdentity(); InitIdentity();
} }
//! Copy constructor.
//! @param theOther [in] the matrix to copy values from.
NCollection_Mat4 (const NCollection_Mat4& theOther)
{
std::memcpy (this, &theOther, sizeof (NCollection_Mat4));
}
//! Assignment operator.
//! @param theOther [in] the matrix to copy values from.
const NCollection_Mat4& operator= (const NCollection_Mat4& theOther)
{
std::memcpy (this, &theOther, sizeof (NCollection_Mat4));
return *this;
}
//! Get element at the specified row and column. //! Get element at the specified row and column.
//! @param theRow [in] the row.to address. //! @param theRow [in] the row.to address.
//! @param theCol [in] the column to address. //! @param theCol [in] the column to address.

View File

@@ -58,19 +58,15 @@ public:
NCollection_StdAllocator( const Handle(NCollection_BaseAllocator)& theAlloc) throw() NCollection_StdAllocator( const Handle(NCollection_BaseAllocator)& theAlloc) throw()
{ myAlloc = theAlloc; } { myAlloc = theAlloc; }
//! Constructor. //! Copy constructor.
/*! Copies Allocator() from \a X.*/
NCollection_StdAllocator( const NCollection_StdAllocator& X) throw() { myAlloc = X.myAlloc; }
//! Destructor.
/*! Empty implementation.*/
~NCollection_StdAllocator() throw() {}
//! Constructor.
/*! Copies Allocator() from \a Y.*/ /*! Copies Allocator() from \a Y.*/
template<typename U> NCollection_StdAllocator( const NCollection_StdAllocator<U>& Y) throw() template<typename U> NCollection_StdAllocator( const NCollection_StdAllocator<U>& Y) throw()
{ myAlloc = Y.Allocator(); } { myAlloc = Y.Allocator(); }
//! Assignment operator
template<typename U> NCollection_StdAllocator& operator= (const NCollection_StdAllocator<U>& Y) throw()
{ myAlloc = Y.Allocator(); return *this; }
//! Returns an object address. //! Returns an object address.
/*! Returns &x.*/ /*! Returns &x.*/
pointer address( reference x ) const { return &x; } pointer address( reference x ) const { return &x; }
@@ -158,6 +154,13 @@ public:
/*! Returns an object specified in the constructor.*/ /*! Returns an object specified in the constructor.*/
const Handle(NCollection_BaseAllocator)& Allocator() const { return myAlloc; } const Handle(NCollection_BaseAllocator)& Allocator() const { return myAlloc; }
//! Assignment operator
NCollection_StdAllocator& operator=(const NCollection_StdAllocator& X) throw()
{
myAlloc = X.myAlloc;
return *this;
}
protected: protected:
Handle(NCollection_BaseAllocator) myAlloc; Handle(NCollection_BaseAllocator) myAlloc;
}; };

View File

@@ -57,21 +57,6 @@ public:
v[1] = theY; v[1] = theY;
} }
//! Copy constructor.
NCollection_Vec2 (const NCollection_Vec2& theVec2)
{
v[0] = theVec2[0];
v[1] = theVec2[1];
}
//! Assignment operator.
const NCollection_Vec2& operator= (const NCollection_Vec2& theVec2)
{
v[0] = theVec2[0];
v[1] = theVec2[1];
return *this;
}
//! Alias to 1st component as X coordinate in XY. //! Alias to 1st component as X coordinate in XY.
Element_t x() const { return v[0]; } Element_t x() const { return v[0]; }

View File

@@ -73,19 +73,6 @@ public:
v[2] = Element_t(0); v[2] = Element_t(0);
} }
//! Copy constructor.
NCollection_Vec3 (const NCollection_Vec3& theVec3)
{
std::memcpy (this, &theVec3, sizeof(NCollection_Vec3));
}
//! Assignment operator.
const NCollection_Vec3& operator= (const NCollection_Vec3& theVec3)
{
std::memcpy (this, &theVec3, sizeof(NCollection_Vec3));
return *this;
}
//! Alias to 1st component as X coordinate in XYZ. //! Alias to 1st component as X coordinate in XYZ.
Element_t x() const { return v[0]; } Element_t x() const { return v[0]; }

View File

@@ -80,19 +80,6 @@ public:
v[3] = theAlpha; v[3] = theAlpha;
} }
//! Copy constructor.
NCollection_Vec4 (const NCollection_Vec4& theVec4)
{
std::memcpy (this, &theVec4, sizeof(NCollection_Vec4));
}
//! Assignment operator.
const NCollection_Vec4& operator= (const NCollection_Vec4& theVec4)
{
std::memcpy (this, &theVec4, sizeof(NCollection_Vec4));
return *this;
}
//! Alias to 1st component as X coordinate in XYZW. //! Alias to 1st component as X coordinate in XYZW.
Element_t x() const { return v[0]; } Element_t x() const { return v[0]; }

View File

@@ -20,44 +20,6 @@
#include <VrmlData_Appearance.hxx> #include <VrmlData_Appearance.hxx>
#include <TopoDS_TShape.hxx> #include <TopoDS_TShape.hxx>
/** typedef NCollection_DataMap<Handle(TopoDS_TShape), Handle(VrmlData_Appearance)> VrmlData_DataMapOfShapeAppearance;
* Data Map that provides the link between each Shape obtained in VRML import
* and the corresponding Appearance.
*/
class VrmlData_DataMapOfShapeAppearance
: public NCollection_DataMap<Handle(TopoDS_TShape), Handle(VrmlData_Appearance)>
{
public:
//! Constructor
inline VrmlData_DataMapOfShapeAppearance
(const Standard_Integer NbBuckets=1,
const Handle(NCollection_BaseAllocator)& theAllocator = 0L)
: NCollection_DataMap<Handle(TopoDS_TShape),
Handle(VrmlData_Appearance)> (NbBuckets, theAllocator)
{}
//! Copy constructor
inline VrmlData_DataMapOfShapeAppearance
(const VrmlData_DataMapOfShapeAppearance& theOther)
: NCollection_DataMap<Handle(TopoDS_TShape),
Handle(VrmlData_Appearance)> (theOther)
{}
friend Standard_Boolean IsEqual (const Handle(TopoDS_TShape)& one,
const Handle(TopoDS_TShape)& two);
};
//=======================================================================
//function : IsEqual
//purpose : for NCollection_DataMap interface
//=======================================================================
inline Standard_Boolean IsEqual (const Handle(TopoDS_TShape)& one,
const Handle(TopoDS_TShape)& two)
{
return one == two;
}
#endif #endif

View File

@@ -17,11 +17,11 @@
#define VrmlData_Group_HeaderFile #define VrmlData_Group_HeaderFile
#include <VrmlData_ListOfNode.hxx> #include <VrmlData_ListOfNode.hxx>
#include <VrmlData_DataMapOfShapeAppearance.hxx>
#include <Bnd_B3f.hxx> #include <Bnd_B3f.hxx>
#include <gp_Trsf.hxx> #include <gp_Trsf.hxx>
class TopoDS_Shape; class TopoDS_Shape;
class VrmlData_DataMapOfShapeAppearance;
/** /**
* Implementation of node "Group" * Implementation of node "Group"

View File

@@ -27,9 +27,9 @@
#include <TCollection_ExtendedString.hxx> #include <TCollection_ExtendedString.hxx>
#include <NCollection_IncAllocator.hxx> #include <NCollection_IncAllocator.hxx>
#include <Standard_Mutex.hxx> #include <Standard_Mutex.hxx>
#include <VrmlData_DataMapOfShapeAppearance.hxx>
struct VrmlData_InBuffer; struct VrmlData_InBuffer;
class VrmlData_DataMapOfShapeAppearance;
/** /**
* Block of comments describing class VrmlData_Scene * Block of comments describing class VrmlData_Scene