0030683: Coding Rules - eliminate CLang compiler warnings -Wreturn-std-move
[occt.git] / src / TopLoc / TopLoc_SListOfItemLocation.hxx
index 320b667..dcec2b7 100644 (file)
@@ -48,32 +48,62 @@ public:
 
   DEFINE_STANDARD_ALLOC
 
-  
   //! Creates an empty List.
-    TopLoc_SListOfItemLocation();
+  TopLoc_SListOfItemLocation() {}
   
   //! Creates a List with <anItem> as value  and <aTail> as tail.
   Standard_EXPORT TopLoc_SListOfItemLocation(const TopLoc_ItemLocation& anItem, const TopLoc_SListOfItemLocation& aTail);
   
   //! Creates a list from an other one. The lists  are shared.
-    TopLoc_SListOfItemLocation(const TopLoc_SListOfItemLocation& Other);
+  TopLoc_SListOfItemLocation(const TopLoc_SListOfItemLocation& Other)
+  : myNode(Other.myNode)
+  {
+  }
   
   //! Sets  a list  from  an  other  one. The  lists are
   //! shared. The list itself is returned.
   Standard_EXPORT TopLoc_SListOfItemLocation& Assign (const TopLoc_SListOfItemLocation& Other);
-TopLoc_SListOfItemLocation& operator = (const TopLoc_SListOfItemLocation& Other)
-{
-  return Assign(Other);
-}
+
+  //! Assignment
+  TopLoc_SListOfItemLocation& operator = (const TopLoc_SListOfItemLocation& Other)
+  {
+    return Assign(Other);
+  }
   
-    Standard_Boolean IsEmpty() const;
+#ifndef OCCT_NO_RVALUE_REFERENCE
+
+  //! Move constructor
+  TopLoc_SListOfItemLocation (TopLoc_SListOfItemLocation&& theOther)
+    : myNode(std::move (theOther.myNode))
+  {
+  }
+
+  //! Move operator
+  TopLoc_SListOfItemLocation& operator= (TopLoc_SListOfItemLocation&& theOther)
+  {
+    myNode = std::move (theOther.myNode);
+    return *this;
+  }
+
+#endif
+
+  //! Returne true if this list is empty
+  Standard_Boolean IsEmpty() const
+  {
+    return myNode.IsNull();
+  }
   
   //! Sets the list to be empty.
-    void Clear();
-~TopLoc_SListOfItemLocation()
-{
-  Clear();
-}
+  void Clear()
+  {
+    myNode.Nullify();
+  }
+
+  //! Destructor
+  ~TopLoc_SListOfItemLocation()
+  {
+    Clear();
+  }
   
   //! Returns the current value of the list. An error is
   //! raised  if the list is empty.
@@ -85,42 +115,33 @@ TopLoc_SListOfItemLocation& operator = (const TopLoc_SListOfItemLocation& Other)
   
   //! Replaces the list by a list with <anItem> as Value
   //! and the  list <me> as  tail.
-    void Construct (const TopLoc_ItemLocation& anItem);
+  void Construct(const TopLoc_ItemLocation& anItem)
+  {
+    Assign(TopLoc_SListOfItemLocation(anItem, *this));
+  }
   
   //! Replaces the list <me> by its tail.
-    void ToTail();
+  void ToTail()
+  {
+    Assign(Tail());
+  }
   
   //! Returns True if the iterator  has a current value.
   //! This is !IsEmpty()
-    Standard_Boolean More() const;
+  Standard_Boolean More() const
+  {
+    return !IsEmpty();
+  }
   
   //! Moves the iterator to the next object in the list.
   //! If the iterator is empty it will  stay empty. This is ToTail()
-    void Next();
-
-
-
-
-protected:
-
-
-
-
+  void Next()
+  {
+    ToTail();
+  }
 
 private:
-
-
-
   Handle(TopLoc_SListNodeOfItemLocation) myNode;
-
-
 };
 
-
-#include <TopLoc_SListOfItemLocation.lxx>
-
-
-
-
-
 #endif // _TopLoc_SListOfItemLocation_HeaderFile