Box MakeBoxOfCats() { Box catbox; Cat cat1(L"Furry"); catbox.MoveCatToBox(std::move(cat1)); // WARNING! At this point, cat1 has been moved to catbox, so it is no longer valid! Cat cat2(L"Purry"); catbox.AddCatToBox(cat2); Cat cat3(L"Curry"); catbox.AddCatToBox(cat3); Cat cat4(L"Allergy"); catbox.AddCatToBox(cat4); return catbox; }