0025617: Avoid classes with a copy constructor and the default destructor or assignme...
authorazn <azn@opencascade.com>
Wed, 17 Dec 2014 08:17:28 +0000 (11:17 +0300)
committerkgv <kgv@opencascade.com>
Thu, 24 Sep 2015 11:14:38 +0000 (14:14 +0300)
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<>.

src/BOPCol/BOPCol_NCVector.hxx
src/NCollection/NCollection_Mat4.hxx
src/NCollection/NCollection_StdAllocator.hxx
src/NCollection/NCollection_Vec2.hxx
src/NCollection/NCollection_Vec3.hxx
src/NCollection/NCollection_Vec4.hxx
src/VrmlData/VrmlData_DataMapOfShapeAppearance.hxx
src/VrmlData/VrmlData_Group.hxx
src/VrmlData/VrmlData_Scene.hxx

index 73ad5e4..f3db4b5 100755 (executable)
@@ -33,10 +33,6 @@ template <class Type> class BOPCol_NCVector
     : NCollection_Vector<Type>(theIncrement, theAlloc)
   {}
   //
-  BOPCol_NCVector(const BOPCol_NCVector& theOther) 
-    : NCollection_Vector<Type>(theOther)
-  {}
-  //
   Type& Append1 ()
   {
     Type& anAppended = *(Type*)this->expandV (this->myLength);
index c2d52cd..9481fcf 100755 (executable)
@@ -49,21 +49,6 @@ public:
     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.
   //! @param theRow [in] the row.to address.
   //! @param theCol [in] the column to address.
index 8bf3610..6b8c9c1 100755 (executable)
@@ -58,19 +58,15 @@ public:
   NCollection_StdAllocator( const Handle(NCollection_BaseAllocator)& theAlloc) throw()
   { myAlloc = theAlloc; }
 
-  //! Constructor.
-  /*! Copies Allocator() from \a X.*/
-  NCollection_StdAllocator( const NCollection_StdAllocator& X) throw() { myAlloc = X.myAlloc; }
-
-  //! Destructor.
-  /*! Empty implementation.*/
-  ~NCollection_StdAllocator() throw() {}
-
-  //! Constructor.
+  //! Copy constructor.
   /*! Copies Allocator() from \a Y.*/
   template<typename U> NCollection_StdAllocator( const NCollection_StdAllocator<U>& Y) throw()
   { 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 &x.*/
   pointer address( reference x ) const { return &x; }
@@ -158,6 +154,13 @@ public:
   /*! Returns an object specified in the constructor.*/
   const Handle(NCollection_BaseAllocator)& Allocator() const { return myAlloc; }
 
+  //! Assignment operator
+  NCollection_StdAllocator& operator=(const NCollection_StdAllocator& X) throw()
+  {
+    myAlloc = X.myAlloc;
+    return *this;
+  }
+
 protected:
   Handle(NCollection_BaseAllocator) myAlloc;
 };
index 5515a63..79b9512 100644 (file)
@@ -57,21 +57,6 @@ public:
     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.
   Element_t x() const { return v[0]; }
 
index a666aa2..73b9743 100644 (file)
@@ -73,19 +73,6 @@ public:
     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.
   Element_t x() const { return v[0]; }
 
index 65b38eb..e301681 100644 (file)
@@ -80,19 +80,6 @@ public:
     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.
   Element_t x() const { return v[0]; }
 
index c0613fd..b3b5ba3 100644 (file)
 #include <VrmlData_Appearance.hxx>
 #include <TopoDS_TShape.hxx>
 
-/**
- * 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;
-}
-
+typedef NCollection_DataMap<Handle(TopoDS_TShape), Handle(VrmlData_Appearance)> VrmlData_DataMapOfShapeAppearance;
 
 #endif
index 2f13bd1..4de9d47 100644 (file)
 #define VrmlData_Group_HeaderFile
 
 #include <VrmlData_ListOfNode.hxx>
+#include <VrmlData_DataMapOfShapeAppearance.hxx>
 #include <Bnd_B3f.hxx>
 #include <gp_Trsf.hxx>
 
 class TopoDS_Shape;
-class VrmlData_DataMapOfShapeAppearance;
 
 /**
  * Implementation of node "Group"
index 6dbde26..052be35 100644 (file)
@@ -27,9 +27,9 @@
 #include <TCollection_ExtendedString.hxx>
 #include <NCollection_IncAllocator.hxx>
 #include <Standard_Mutex.hxx>
+#include <VrmlData_DataMapOfShapeAppearance.hxx>
 
 struct VrmlData_InBuffer;
-class VrmlData_DataMapOfShapeAppearance;
 
 /**
  * Block of comments describing class VrmlData_Scene