From 070f1812cda0a8a4adb920f1b3ce04de6020f4e0 Mon Sep 17 00:00:00 2001 From: Brett <brettmaster1@gmail.com> Date: Fri, 9 Feb 2024 00:13:59 -0500 Subject: [PATCH] span --- include/blt/std/ranges.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/include/blt/std/ranges.h b/include/blt/std/ranges.h index bb29df4..9f9ba7e 100644 --- a/include/blt/std/ranges.h +++ b/include/blt/std/ranges.h @@ -9,8 +9,10 @@ #define BLT_RANGES_H #include <blt/std/types.h> +#include <type_traits> #include <iterator> #include <utility> +#include <limits> namespace blt { @@ -165,6 +167,26 @@ namespace blt return range_itr(_end - offset, offset == 0); } }; + + inline constexpr std::size_t dynamic_extent = std::numeric_limits<std::size_t>::max(); + + template<typename T, std::size_t extend = dynamic_extent> + class span + { + public: + using element_type = T; + using value_type = std::remove_cv_t<T>; + using size_type = blt::size_t; + using difference_type = std::ptrdiff_t; + using pointer = T*; + using const_pointer = const T*; + using reference = T&; + using const_reference = const T&; + + private: + + public: + }; } #endif //BLT_RANGES_H