#include <iostream>
#include <unordered_map>
struct Test
{
std::unordered_map<int, int> v;
std::unordered_map<int, int>::iterator vend;
Test(std::unordered_map<int, int>::iterator &it)
: vend { v.end() }
{
it = this->vend;
};
Test() = delete;
Test(Test const &) = delete;
Test(Test &&) = default; // <- line in question
};
int main()
{
std::unordered_map<int, int>::iterator it;
std::unordered_map<int, Test> m;
m.emplace(0, Test{ it });
std::cout << std::boolalpha << (m.at(0).v.end() == it) << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KCnN0cnVjdCBUZXN0CnsKICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQsIGludD4gdjsKICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQsIGludD46Oml0ZXJhdG9yIHZlbmQ7CgogICAgVGVzdChzdGQ6OnVub3JkZXJlZF9tYXA8aW50LCBpbnQ+OjppdGVyYXRvciAmaXQpCiAgICAgICAgOiB2ZW5kIHsgdi5lbmQoKSB9CiAgICB7CiAgICAgICAgaXQgPSB0aGlzLT52ZW5kOwogICAgfTsKCiAgICBUZXN0KCkgPSBkZWxldGU7CiAgICBUZXN0KFRlc3QgY29uc3QgJikgPSBkZWxldGU7CiAgICBUZXN0KFRlc3QgJiYpID0gZGVmYXVsdDsgLy8gPC0gbGluZSBpbiBxdWVzdGlvbgp9OwoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50LCBpbnQ+OjppdGVyYXRvciBpdDsKICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQsIFRlc3Q+IG07CiAgICBtLmVtcGxhY2UoMCwgVGVzdHsgaXQgfSk7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjpib29sYWxwaGEgPDwgKG0uYXQoMCkudi5lbmQoKSA9PSBpdCkgPDwgIlxuIjsKCiAgICByZXR1cm4gMDsKfQ==