#ifndef KRYP_H_ #define KRYP_H_ #include using Kryp_Data = std::string; class Kryp { public: Kryp(); ~Kryp(); Kryp(Kryp const&) = delete; Kryp(Kryp&&) = delete; Kryp& operator=(Kryp const&) = delete; Kryp& operator=(Kryp&&) = delete; bool empty() const; void push(Kryp_Data const&); Kryp_Data pop(); private: class Element { public: Element(Kryp_Data const& i, Element* n = nullptr) : data(i), next(n) {} ~Element() { delete next; } Element(Element const&) = delete; Element(Element&&) = delete; Element& operator=(Element const&) = delete; Element& operator=(Element&&) = delete; Kryp_Data data; Element* next; }; Element* first; }; #endif