From ce77b2354c8b2ccc557d418ccb2c97f2748426cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Mon, 17 Feb 2025 15:07:20 +0100 Subject: [PATCH] Change Point2 to use STL arrays for predefined directions --- include/aoc/Point2.hpp | 6 ++++-- src/Point2.cpp | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/aoc/Point2.hpp b/include/aoc/Point2.hpp index 8e3caf3..857471f 100644 --- a/include/aoc/Point2.hpp +++ b/include/aoc/Point2.hpp @@ -15,6 +15,8 @@ #pragma once +#include + class Point2 { public: @@ -24,11 +26,11 @@ class Point2 /// The eight cardinal and diagonal directions starting down, rotating in /// positive direction. /// - static const Point2 directions[8]; + static const std::array directions; /// /// The four cardinal directions starting down, rotating in positive direction. /// - static const Point2 cardinalDirections[4]; + static const std::array cardinalDirections; int x, y; Point2(); Point2(const int x, const int y); diff --git a/src/Point2.cpp b/src/Point2.cpp index 1103915..6437d53 100644 --- a/src/Point2.cpp +++ b/src/Point2.cpp @@ -23,9 +23,9 @@ const Point2 Point2::upLeft{ -1, -1 }; const Point2 Point2::upRight{ 1, -1 }; const Point2 Point2::downLeft{ -1, 1 }; const Point2 Point2::downRight{ 1, 1 }; -const Point2 Point2::directions[] = { Point2::down, Point2::downRight, Point2::right, Point2::upRight, Point2::up, - Point2::upLeft, Point2::left, Point2::downLeft }; -const Point2 Point2::cardinalDirections[] = { Point2::down, Point2::right, Point2::up, Point2::left }; +const std::array Point2::directions = { Point2::down, Point2::downRight, Point2::right, Point2::upRight, + Point2::up, Point2::upLeft, Point2::left, Point2::downLeft }; +const std::array Point2::cardinalDirections = { Point2::down, Point2::right, Point2::up, Point2::left }; Point2::Point2() : Point2{ 0, 0 }