From 8d855020e979a34f79111edf1b42429020007fdb Mon Sep 17 00:00:00 2001 From: adjoly Date: Sat, 19 Apr 2025 20:55:50 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat:=20finished?= =?UTF-8?q?=20ex02?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ex02/Makefile | 60 +++++++++++++++++++++++++++++++++++++++++++ ex02/MutantStack | Bin 0 -> 118600 bytes ex02/MutantStack.hpp | 59 ++++++++++++++++++++++++++++++++++++++++++ ex02/main.cpp | 31 ++++++++++++++++++++++ 4 files changed, 150 insertions(+) create mode 100644 ex02/Makefile create mode 100755 ex02/MutantStack create mode 100644 ex02/MutantStack.hpp create mode 100644 ex02/main.cpp diff --git a/ex02/Makefile b/ex02/Makefile new file mode 100644 index 0000000..43d85ad --- /dev/null +++ b/ex02/Makefile @@ -0,0 +1,60 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: adjoly +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/10/25 16:09:27 by adjoly #+# #+# # +# Updated: 2025/04/16 10:44:14 by adjoly ### ########.fr # +# # +# **************************************************************************** # + +SHELL = bash + +NAME = MutantStack + +CC = c++ + +OBJSDIR = obj/ + +SRCS = $(shell find . -name '*.cpp') + +OBJS = $(addprefix $(OBJSDIR), $(SRCS:.cpp=.o)) + +FLAGS = -Wall -Werror -Wextra -std=c++98 -MMD -MP -g + +RED = \033[0;31m +GREEN = \033[0;32m +YELLOW = \033[1;33m +PURPLE = \e[0;35m +NC = \033[0m +DELETE = \x1B[2K\r + +ifeq ($(VERBOSE),true) + FLAGS += -D VERBOSE +endif + +all: $(NAME) + +$(NAME): $(OBJS) + @$(CC) $(FLAGS) -I . $(OBJS) -o $(NAME) + @printf "$(YELLOW)「✨」($(NAME)) Program compiled\n" + +$(OBJSDIR)%.o: %.cpp + @mkdir -p $(@D) + @$(CC) $(FLAGS) -I . -c $< -o $@ + @printf "$(DELETE)$(GREEN)「🔨」($<) Object compiled\n" + +clean: + @rm -f $(OBJS) + @printf "$(DELETE)$(RED)「🗑️」($(OBJS)) Object deleted\n" + +fclean: clean + @rm -f $(NAME) + @rm -Rf $(OBJSDIR) + @printf "$(RED)「🗑️」($(NAME)) Program deleted\n" + +re: fclean all + +.PHONY: clean fclean all re diff --git a/ex02/MutantStack b/ex02/MutantStack new file mode 100755 index 0000000000000000000000000000000000000000..fcd6489e125555d4ab3f189f0e3e66aaa79e5e70 GIT binary patch literal 118600 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 qMt=}`E$!)~{QcvP>-nZg))S0o&N``kiUfh literal 0 HcmV?d00001 diff --git a/ex02/MutantStack.hpp b/ex02/MutantStack.hpp new file mode 100644 index 0000000..4da0a71 --- /dev/null +++ b/ex02/MutantStack.hpp @@ -0,0 +1,59 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* MutantStack.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/16 10:44:35 by adjoly #+# #+# */ +/* Updated: 2025/04/19 20:51:25 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include +#include +#include + +static void _log(std::string emoji, std::string what, std::string who, + std::string str) { +#ifdef VERBOSE + if (who.empty()) + std::cout << "「" << emoji << "」" << what << ": " << str << std::endl; + else + std::cout << "「" << emoji << "」" << what << "(" << who << "): " << str + << std::endl; +#else + (void)emoji, (void)what, (void)who, (void)str; +#endif +} + +template class MutantStack : public std::stack { + public: + MutantStack(void) { + _log("➕", "MutantStack", "", "default constructor called"); + } + MutantStack(const MutantStack &cpy) : std::stack(cpy) { + _log("➕", "MutantStack", "", "copy constructor called"); + } + ~MutantStack(void) { _log("➖", "MutantStack", "", "destructor called"); } + + MutantStack &operator=(const MutantStack &cpy) { + if (this != &cpy) { + std::stack::operator=(cpy); + } + return *this; + } + + typedef typename std::stack::container_type::iterator iterator; + iterator begin(void) { return std::stack::c.begin(); } + iterator end(void) { return std::stack::c.end(); } + + typedef + typename std::stack::container_type::const_iterator const_iterator; + const_iterator begin(void) const { return std::stack::c.begin(); } + const_iterator end(void) const { return std::stack::c.end(); } + + private: +}; diff --git a/ex02/main.cpp b/ex02/main.cpp new file mode 100644 index 0000000..733fd71 --- /dev/null +++ b/ex02/main.cpp @@ -0,0 +1,31 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/16 10:53:23 by adjoly #+# #+# */ +/* Updated: 2025/04/19 20:55:37 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "MutantStack.hpp" + +int main(void) { + MutantStack stack; + + stack.push(5); + stack.push(17); + stack.pop(); + std::cout << "size = " << stack.size() << std::endl; + stack.push(3); + stack.push(5); + stack.push(737); + //[...] + for (MutantStack::iterator it = stack.begin(); it != stack.end(); it++) { + std::cout << *it << std::endl; + } + + return 0; +}