#include #include #include /* Expected output: box containing a box containing a Book wrapped in blue paper wrapped in red paper This gift was packaged by: Eminelf Elf Mayweather Mike Elfson Elfpac */ int main() { std::vector elves { Wrapper{"Eminelf", "blue"}, Boxer{"Elf Mayweather"}, Boxer{"Mike Elfson"}, Wrapper{"Elfpac", "red"} }; std::string gift { "Book" }; for (/* Elf */ elf : elves) { gift = elf->handle(gift); } std::cout << gift << std::endl << std::endl; std::cout << "This gift was packaged by: " << std::endl; for (/* Elf */ elf : elves) { std::cout << elf->get_name() << std::endl; } }