#include <iostream>
struct Foo {
	Foo() = default;
	Foo(const Foo &) {}
	Foo(Foo &&) = default;
};

struct Bar {
	Bar() = default;
	Bar(const Bar &) = default;
	Bar(Bar &&) {}
};

Foo GetFoo() {
	Foo foo;
	std::cout << "GetFoo:" << &foo << std::endl;
	return foo;
}

Bar GetBar() {
	Bar bar;
	std::cout << "GetBar:" << &bar << std::endl;
	return bar;
}

int main() {
	Foo foo = GetFoo();
	std::cout << "foo:" << &foo << std::endl;
	Bar bar = GetBar();
	std::cout << "bar:" << &bar << std::endl;
	return 0;
}
