0025324: Make OCCT collections copy-constructible
authormsv <msv@opencascade.com>
Mon, 6 Oct 2014 07:45:28 +0000 (11:45 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 9 Oct 2014 10:08:57 +0000 (14:08 +0400)
Since TCollection package is going to be obsolete we change only classes that are currently needed to have copy constructor.

src/TColStd/TColStd_PackedMapOfInteger.hxx
src/TCollection/TCollection_Sequence.cdl
src/TCollection/TCollection_Sequence.lxx

index 47b4f80..a0dd633 100644 (file)
@@ -37,6 +37,12 @@ class TColStd_PackedMapOfInteger : private TCollection_BasicMap
     : TCollection_BasicMap (NbBuckets, Standard_True),
       myExtent             (0) {}
 
+  /// Copy constructor
+  inline TColStd_PackedMapOfInteger (const TColStd_PackedMapOfInteger& theOther)
+    : TCollection_BasicMap (1, Standard_True),
+      myExtent             (0)
+  { Assign(theOther); }
+
   inline TColStd_PackedMapOfInteger&
                           operator =  (const TColStd_PackedMapOfInteger& Other) 
   { return Assign(Other); }
@@ -210,11 +216,6 @@ public:
 
 
  private:
-  // ----------- PRIVATE (PROHIBITED) methods
-  /// Copy constructor - prohibited.
-  TColStd_PackedMapOfInteger (const TColStd_PackedMapOfInteger& theOther);
-
-
   // ---------- PRIVATE FIELDS ----------
 
   size_t                myExtent;
index c06c952..b7a6d2f 100644 (file)
@@ -70,11 +70,8 @@ is
                -- assignment operator (operator=).
                ---C++: inline
 
-       Create(Other : Sequence) returns Sequence from TCollection
+       Create(Other : Sequence) returns Sequence from TCollection;
                ---Purpose: Creation by copy of existing Sequence.
-               --  Warning: This constructor prints a warning message.
-               -- We recommand to use the operator =.
-       is private;
                
        Clear(me : in out);
                ---Purpose: Removes all element(s) of the sequence <me>
index ac8a0be..3b060fd 100644 (file)
@@ -24,6 +24,16 @@ inline TCollection_Sequence::TCollection_Sequence()
 }
 
 //=======================================================================
+//function : Copy constructor
+//purpose  : 
+//=======================================================================
+
+inline TCollection_Sequence::TCollection_Sequence(const TCollection_Sequence& theOther)
+{
+  Assign(theOther);
+}
+
+//=======================================================================
 //function : Append 
 //purpose  : Appends a Sequence to myself
 //=======================================================================