diff options
Diffstat (limited to 'cpp07/ex00')
| -rw-r--r-- | cpp07/ex00/Makefile | 35 | ||||
| -rw-r--r-- | cpp07/ex00/whatever.cpp | 55 |
2 files changed, 90 insertions, 0 deletions
diff --git a/cpp07/ex00/Makefile b/cpp07/ex00/Makefile new file mode 100644 index 0000000..660a45b --- /dev/null +++ b/cpp07/ex00/Makefile @@ -0,0 +1,35 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2020/04/14 19:48:34 by charles #+# #+# # +# Updated: 2020/04/14 19:58:14 by charles ### ########.fr # +# # +# **************************************************************************** # + +NAME = a_few_functions + +CXX = clang++ +CXXFLAGS = -std=c++98 -Wall -Wextra -Werror + +SRC = whatever.cpp +OBJ = $(SRC:.cpp=.o) + +all: $(NAME) + +$(NAME): $(OBJ) + $(CXX) -o $@ $< + +%.o: %.cpp + $(CXX) $(CXXFLAGS) -c -o $@ $^ + +clean: + rm -rf $(OBJ) + +fclean: clean + rm -rf $(NAME) + +re: fclean all diff --git a/cpp07/ex00/whatever.cpp b/cpp07/ex00/whatever.cpp new file mode 100644 index 0000000..ebebf8c --- /dev/null +++ b/cpp07/ex00/whatever.cpp @@ -0,0 +1,55 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* whatever.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/04/14 19:46:56 by charles #+# #+# */ +/* Updated: 2020/04/14 20:01:41 by charles ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include <iostream> +#include <string> + +template<typename T> +void swap(T& a, T& b) +{ + T tmp = a; + a = b; + b = tmp; +} + +template<typename T> +T& min(T& a, T& b) +{ + return a < b ? a : b; +} + +template<typename T> +T& max(T& a, T& b) +{ + return a > b ? a : b; +} + +int main() +{ + 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; +} |
