#include <iostream>

struct Test
{
    Test()
    {}

    Test(const Test*& other)
    {
        std::cout << "lvalue" << std::endl;
    }

    Test(Test*&& other)  
    {
        std::cout << "rvalue" << std::endl;
    }
};

Test* f()
{
    static Test t;
    return &t;
}

int main()
{   
    Test t = f();
    return 0;
}