Implement ex00
authorLukas Jiriste <ljiriste@student.42prague.com>
Wed, 22 Jan 2025 13:24:24 +0000 (14:24 +0100)
committerLukas Jiriste <ljiriste@student.42prague.com>
Wed, 22 Jan 2025 14:28:32 +0000 (15:28 +0100)
ex00/Makefile [new file with mode: 0644]
ex00/main.cpp [new file with mode: 0644]
ex00/whatever.h [new file with mode: 0644]

diff --git a/ex00/Makefile b/ex00/Makefile
new file mode 100644 (file)
index 0000000..77d43e7
--- /dev/null
@@ -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 (file)
index 0000000..dc302eb
--- /dev/null
@@ -0,0 +1,20 @@
+#include "whatever.h"
+#include <iostream>
+
+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 (file)
index 0000000..0687fc9
--- /dev/null
@@ -0,0 +1,26 @@
+template<typename T>
+void   swap(T &a, T &b)
+{
+       T       tmp;
+
+       tmp = a;
+       a = b;
+       b = tmp;
+}
+
+template<typename T>
+T      &min(T &a, T &b)
+{
+       if (a < b)
+               return (a);
+       return (b);
+}
+
+template<typename T>
+T      &max(T &a, T &b)
+{
+       if (a > b)
+               return (a);
+       return (b);
+}
+