#include <iostream>
#include <memory>


using namespace std;

struct A {
	int r = 1;	
};

struct B {
	void foo( A&& a )
	{
		j = &a;
		cout << j->r;
	}	
	
	const A& begin() const
	{
		return *j;
	}
	
	A* j;
};



int main() {
	
	A a;
	
	B b;
	
	b.foo( std::move( a ) );
	
	delete &b.begin();
	
	cout << b.begin().r;
	
	// cout << a->r;
	
	return 0;
}