class Attr
{
public:
   Attr();
   Attr(const std::wstring& name)
   {
      ...
   }
};
class AttrDec : public Attr
{
public:
   AttrDec(Attr* attr)
      :Attr()
   {
      _attr = attr;
   }
   AttrDec(Attr*&& attr)
      :Attr()
   {
      _attr = std::move(attr);
   }
private:
   Attr* _attr;
};
class XAttr : public AttrDec
{
public:
   XAttr(const std::wstring& name)
      :AttrDec(&Attr(name)) //HERE!!!
   {}
}
at the marked position I got a warning:
nonstandard extension used: class rvalue used as lvalue.
But I have defined move constructor in class AttrDec!
How can I solve this warning?
 
     
     
     
     
     
    