#include <iostream>
struct something
{
~something() { std::cout << "dtor" << std::endl; }
something& func() { return *this; }
const something& func() const { return *this; }
};
int main()
{
auto& r = something().func();
std::cout << "==main==" << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IHNvbWV0aGluZwp7CiAgfnNvbWV0aGluZygpIHsgc3RkOjpjb3V0IDw8ICJkdG9yIiA8PCBzdGQ6OmVuZGw7IH0KICBzb21ldGhpbmcmIGZ1bmMoKSB7IHJldHVybiAqdGhpczsgfQogIGNvbnN0IHNvbWV0aGluZyYgZnVuYygpIGNvbnN0IHsgcmV0dXJuICp0aGlzOyB9Cn07CgoKCmludCBtYWluKCkKewogIGF1dG8mIHIgPSBzb21ldGhpbmcoKS5mdW5jKCk7CgogIHN0ZDo6Y291dCA8PCAiPT1tYWluPT0iIDw8IHN0ZDo6ZW5kbDsKfQ==