#include <iostream>
#include <cstring>

const char hw[] = "hello world!\n";

class mystring
{
public:
    mystring() {std::cout<<"mystring()\n";}
    mystring(mystring const&) {std::cout<<"mystring(mystring const&)\n";}
    mystring(mystring &&) {std::cout<<"mystring(mystring &&)\n";}
    ~mystring() {std::cout<<"~mystring()\n";}
    const char* begin() const {return hw;}
    const char* end()   const {return hw+std::strlen(hw);}
};

mystring&& silly_idea(mystring&& x)
{ return std::move(x); }

int main()
{
    std::cout << "PRvalue:\n";
    for(char c : mystring()) {
        std::cout << c;
    }
    std::cout << "Xvalue:\n";
    for(char c : silly_idea(mystring())) {
        std::cout << c;
    }
}