c++11 extension for WOBJECT macro
authorKonrad Rosenbaum <konrad@silmor.de>
Mon, 29 May 2017 06:55:09 +0000 (08:55 +0200)
committerKonrad Rosenbaum <konrad@silmor.de>
Mon, 29 May 2017 06:55:09 +0000 (08:55 +0200)
Change-Id: If1efd2a86e360ede757b04ac97c44432cd04a4cd

qtbase/include/object.h

index 0ff7d0e..53966d0 100644 (file)
@@ -23,10 +23,12 @@ class WOLF_BASE_EXPORT WObject
        protected:
                WObject(){}
                WObject(const WObject&){}
+               WObject(WObject&&){}
                WObject(const QDomElement&){}
                virtual ~WObject(){}
                virtual QDomElement toXml(QDomDocument&,QString name="Object");
                virtual WObject& operator=(const WObject&){return *this;}
+               virtual WObject& operator=(WObject&&){return *this;}
                virtual void toXml(QDomDocument&,QDomElement&){}
 
                /**helper for de-serializers: returns direct child elements with given tag name (necessary because QDomElement::elementsByTagName traverses all children)*/
@@ -47,10 +49,14 @@ class WOLF_BASE_EXPORT WDeserializerException:public WException
 #define WOBJECT(wob) public: \
  wob():wob ## Abstract(){} \
  wob(const wob&w):wob ## Abstract(w){} \
+ wob(wob&&w):wob ## Abstract(w){} \
  wob(const wob ## Abstract&w):wob ## Abstract(w){} \
+ wob(wob ## Abstract&&w):wob ## Abstract(w){} \
  wob(const QDomElement&w):wob ## Abstract(w){} \
  wob& operator=(const wob&w){wob ## Abstract::operator=(w);return *this;} \
  wob& operator=(const wob ## Abstract&w){wob ## Abstract::operator=(w);return *this;} \
+ wob& operator=(wob&&w){wob ## Abstract::operator=(w);return *this;} \
+ wob& operator=(wob ## Abstract&&w){wob ## Abstract::operator=(w);return *this;} \
 private:\
  QString tr(const char*text,const char*comment=nullptr)const{return QCoreApplication::translate("" # wob ,text,comment);}