`xvalue` behavior in C++11/14
<pre><code>class Myclass
{    
public:
    Myclass() = default;
    ~Myclass() = default;
    Myclass(Myclass&amp;&amp;) = default;
    Myclass&amp; operator=(Myclass&amp;&amp;) = default;

    Myclass(const Myclass&amp;) = delete;

    Myclass&amp; operator=(const Myclass&amp;) = delete;
    int i = 0;
};

Myclass GetObj()
{
    Myclass obj;    
    return obj;
}

Myclass WrapperOfGetObj()
{
    Myclass&amp;&amp; Wrapobj = GetObj();
    Wrapobj.i = 1; // Will it work?

    return std::move(Wrapobj);
}

int main()
{
    return 0;
}
</code></pre>

<p>I have few questions:
1) In <code>WrapperOfGetObj</code> function, <code>Wrapobj</code> is <strong>xvalue</strong>, so can I assign value to any member of it (xvalue - going to expire!!)<br>
2) What is the storage of <code>xvalue</code>? Is this not automatic storage?<br>
3) When <code>xvalue</code> becomes <code>glvalue</code> and when it becomes <code>rvalue</code>.(Any example in above context will make this clear to me).  </p>