diff --git a/ex01/Makefile b/ex01/Makefile new file mode 100644 index 0000000..cf91d41 --- /dev/null +++ b/ex01/Makefile @@ -0,0 +1,3 @@ +override NAME = ex01.out + +include ../Makefile diff --git a/ex01/src/iter.hpp b/ex01/src/iter.hpp new file mode 100644 index 0000000..2db5477 --- /dev/null +++ b/ex01/src/iter.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include + +template void iter(T* array, const size_t size, void (*function)(T&)) { + for (size_t i = 0; i < size; ++i) + function(array[i]); +} + +template void iter(const T* array, const size_t size, void (*function)(const T&)) { + for (size_t i = 0; i < size; ++i) + function(array[i]); +} diff --git a/ex01/src/main.cpp b/ex01/src/main.cpp new file mode 100644 index 0000000..6e47e6b --- /dev/null +++ b/ex01/src/main.cpp @@ -0,0 +1,23 @@ +#include +#include +#include + +static void print(const int& i) { + std::cout << i << std::endl; +} + +static void multiply(int& i) { + i *= 2; +} + +int main() { + int array[] = {1, 2, 3, 4, 5}; + + iter(array, 5, multiply); + + assert(array[0] == 2 && array[1] == 4 && array[2] == 6 && array[3] == 8 && array[4] == 10); + + const int const_array[] = {1, 2, 3, 4, 5}; + + iter(const_array, 5, print); +}