From 6c80f82cfeed5b8697b41fb6f0a6d75eedc7192f Mon Sep 17 00:00:00 2001 From: Lukas Jiriste Date: Wed, 22 Jan 2025 14:24:24 +0100 Subject: [PATCH] Implement ex00 --- ex00/Makefile | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ ex00/main.cpp | 20 +++++++++++++++++++ ex00/whatever.h | 26 +++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 ex00/Makefile create mode 100644 ex00/main.cpp create mode 100644 ex00/whatever.h diff --git a/ex00/Makefile b/ex00/Makefile new file mode 100644 index 0000000..77d43e7 --- /dev/null +++ b/ex00/Makefile @@ -0,0 +1,52 @@ +CC := c++ +CFLAGS = -std=c++98 -Wall -Wextra -Werror -Wpedantic + +ifneq ("$(wildcard .debug)","") + CFLAGS += -g +endif + +RM := rm -f + +INCDIR := inc +INCDIR += $(addsuffix /inc, $(SUBPROJECTS)); +ifneq ($(INCLUDE),) + INCLUDE := $(addprefix -I, $(INCDIR)) +endif + +SRCDIR := . + +SOURCES := main.cpp \ + +SOURCES := $(addprefix $(SRCDIR)/, $(SOURCES)) + +OBJECTS := $(SOURCES:.cpp=.o) + +NAME := temptest + +all : $(NAME) + +debug : .debug + $(MAKE) all + +nodebug : + $(RM) .debug + $(MAKE) re + +.% : + $(MAKE) fclean + touch $@ + +$(NAME) : $(OBJECTS) + $(CC) $(CFLAGS) -o $@ $^ $(LINKS) + +%.o : %.cpp + $(CC) $(CFLAGS) -o $@ -c $< $(INCLUDE) + +clean : + $(RM) $(OBJECTS) + +fclean : clean + $(RM) $(NAME) + +re : fclean + $(MAKE) all diff --git a/ex00/main.cpp b/ex00/main.cpp new file mode 100644 index 0000000..dc302eb --- /dev/null +++ b/ex00/main.cpp @@ -0,0 +1,20 @@ +#include "whatever.h" +#include + +int main(void) +{ + int a = 2; + int b = 3; + + ::swap( a, b ); + std::cout << "a = " << a << ", b = " << b << std::endl; + std::cout << "min( a, b ) = " << ::min( a, b ) << std::endl; + std::cout << "max( a, b ) = " << ::max( a, b ) << std::endl; + std::string c = "chaine1"; + std::string d = "chaine2"; + ::swap(c, d); + std::cout << "c = " << c << ", d = " << d << std::endl; + std::cout << "min( c, d ) = " << ::min( c, d ) << std::endl; + std::cout << "max( c, d ) = " << ::max( c, d ) << std::endl; + return (0); +} diff --git a/ex00/whatever.h b/ex00/whatever.h new file mode 100644 index 0000000..0687fc9 --- /dev/null +++ b/ex00/whatever.h @@ -0,0 +1,26 @@ +template +void swap(T &a, T &b) +{ + T tmp; + + tmp = a; + a = b; + b = tmp; +} + +template +T &min(T &a, T &b) +{ + if (a < b) + return (a); + return (b); +} + +template +T &max(T &a, T &b) +{ + if (a > b) + return (a); + return (b); +} + -- 2.30.2