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?