summaryrefslogtreecommitdiff
path: root/deimos/core/base.h
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2024-04-04 15:33:40 +0200
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2024-04-04 15:33:40 +0200
commitf878f9e4c42f02585e57bb35c3aabf9f69ee3834 (patch)
treeddb7aaa64677615859ac389a6c3358f2c6a51fe1 /deimos/core/base.h
parentee4ce45b36061964eec1602c7bd3692fb9a40a2f (diff)
More work on Span, add Ensures and Expects
Diffstat (limited to 'deimos/core/base.h')
-rw-r--r--deimos/core/base.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/deimos/core/base.h b/deimos/core/base.h
index 3dc3bad..c3b0d87 100644
--- a/deimos/core/base.h
+++ b/deimos/core/base.h
@@ -65,6 +65,13 @@ public:
deimos_DEFAULT_COPY_MOVE(Span);
+ constexpr Span(T* begin, int64_t size) :
+ m_begin{begin},
+ m_size{size}
+ {
+ Expects(size >= 0);
+ }
+
template<typename U>
requires std::convertible_to<U*, T*>
constexpr Span(const Span<U>& other) : // NOLINT
@@ -72,6 +79,7 @@ public:
m_size{other.size()}
{}
+ constexpr T* data() const { return m_begin; }
constexpr T* begin() const { return m_begin; }
constexpr T* end() const { return m_begin + m_size; }
constexpr int64_t size() const { return m_size; }