From 35fc155f65ad515df887c2911679601ae31b4eb5 Mon Sep 17 00:00:00 2001 From: adjoly Date: Mon, 14 Apr 2025 19:39:20 +0200 Subject: [PATCH] =?UTF-8?q?=E3=80=8C=E2=9C=A8=E3=80=8D=20feat:=20finished?= =?UTF-8?q?=20ex00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .envrc | 1 + .gitignore | 6 ++++ ex00/Makefile | 60 +++++++++++++++++++++++++++++++++++ ex00/easyfind | Bin 0 -> 38120 bytes ex00/easyfind.hpp | 24 ++++++++++++++ ex00/main.cpp | 40 +++++++++++++++++++++++ flake.lock | 79 ++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 36 +++++++++++++++++++++ 8 files changed, 246 insertions(+) create mode 100644 .envrc create mode 100644 .gitignore create mode 100644 ex00/Makefile create mode 100755 ex00/easyfind create mode 100644 ex00/easyfind.hpp create mode 100644 ex00/main.cpp create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..96e6889 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.direnv +*.o +obj/ +compile_commands.json +.cache +*.d diff --git a/ex00/Makefile b/ex00/Makefile new file mode 100644 index 0000000..7225175 --- /dev/null +++ b/ex00/Makefile @@ -0,0 +1,60 @@ +# **************************************************************************** # +# # +# ::: :::::::: # +# Makefile :+: :+: :+: # +# +:+ +:+ +:+ # +# By: adjoly +#+ +:+ +#+ # +# +#+#+#+#+#+ +#+ # +# Created: 2024/10/25 16:09:27 by adjoly #+# #+# # +# Updated: 2025/04/14 19:06:23 by adjoly ### ########.fr # +# # +# **************************************************************************** # + +SHELL = bash + +NAME = easyfind + +CC = c++ + +OBJSDIR = obj/ + +SRCS = $(shell find . -name '*.cpp') + +OBJS = $(addprefix $(OBJSDIR), $(SRCS:.cpp=.o)) + +FLAGS = -Wall -Werror -Wextra -std=c++98 -MMD -MP + +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/ex00/easyfind b/ex00/easyfind new file mode 100755 index 0000000000000000000000000000000000000000..bea68be685ae31b2abb2b41d31f6b5bf5557ee06 GIT binary patch literal 38120 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 +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/14 19:07:43 by adjoly #+# #+# */ +/* Updated: 2025/04/14 19:33:52 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include +#include +#include + +template typename T::iterator easyfind(T val, int what) { + typename T::iterator it = std::find(val.begin(), val.end(), what); + if (it == val.end()) + throw std::runtime_error("value not found"); + return it; +} diff --git a/ex00/main.cpp b/ex00/main.cpp new file mode 100644 index 0000000..dfbbc04 --- /dev/null +++ b/ex00/main.cpp @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* main.cpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/04/14 19:33:56 by adjoly #+# #+# */ +/* Updated: 2025/04/14 19:39:02 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "easyfind.hpp" +#include +#include +#include + +std::vector *newVec() { + std::vector *vec = new std::vector; + for (size_t i = 0; i < 10; i++) { + vec->push_back(i); + } + return vec; +} + +int main(void) { + std::vector *vec = newVec(); + try { + std::vector::iterator it = easyfind >(*vec, 8); + std::cout << "found value : " << *it << std::endl; + } catch (std::runtime_error &e) { + std::cerr << e.what() << std::endl; + } + try { + std::vector::iterator it = easyfind >(*vec, 13); + std::cout << "found value : " << *it << std::endl; + } catch (std::runtime_error &e) { + std::cerr << e.what() << std::endl; + } +} diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..c206742 --- /dev/null +++ b/flake.lock @@ -0,0 +1,79 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1734649271, + "narHash": "sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d70bd19e0a38ad4790d3913bf08fcbfc9eeca507", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, + "pogit": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733518808, + "narHash": "sha256-tKqXoNTG1PGOnHjb6UvkSpKOZFDXDmZt1p0mw5Cic58=", + "owner": "y-syo", + "repo": "pogit", + "rev": "c3cb3fa9aefcf9e065ee27f2daa62a3826d48169", + "type": "github" + }, + "original": { + "owner": "y-syo", + "repo": "pogit", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs", + "pogit": "pogit" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..68e9f43 --- /dev/null +++ b/flake.nix @@ -0,0 +1,36 @@ +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + pogit = { + url = "github:y-syo/pogit"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = inputs@{ nixpkgs, ... }: + let + supportedSystems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + forEachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: f { + pkgs = import nixpkgs { inherit system; }; + }); + in { + devShells = forEachSupportedSystem ({ pkgs }: { + default = pkgs.mkShell.override + {} + { + hardeningDisable = [ "all" ]; + packages = with pkgs; [ + git + gdb + gcc11 + clang_12 + valgrind + compiledb + norminette + inputs.pogit.packages.${pkgs.system}.default + ]; + }; + }); + }; +} +