#pragma once #include #include #include "AForm.hpp" class ShrubberyCreationForm : public AForm { private: const std::string _target; public: // Constructors ShrubberyCreationForm() = delete; ShrubberyCreationForm(std::string target); // Copy constructor and copy assignment operator ShrubberyCreationForm(const ShrubberyCreationForm &other); ShrubberyCreationForm &operator=(const ShrubberyCreationForm &other) = delete; // Move constructor and move assignment operator ShrubberyCreationForm(ShrubberyCreationForm &&other) noexcept; ShrubberyCreationForm &operator=(ShrubberyCreationForm &&other) noexcept = delete; // Destructor ~ShrubberyCreationForm(); void execute(const Bureaucrat &executor) const override; const std::string getTarget() const; }; std::ostream &operator<<(std::ostream &os, const ShrubberyCreationForm &form);