From 5548f38462ae588a059d0b656cce923ec424ef1b Mon Sep 17 00:00:00 2001 From: John Hodge Date: Sun, 13 Oct 2019 13:44:21 +0800 Subject: Missing file (from a few weeks ago, oops) --- src/slice.hpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/slice.hpp (limited to 'src/slice.hpp') diff --git a/src/slice.hpp b/src/slice.hpp new file mode 100644 index 00000000..2011e8c2 --- /dev/null +++ b/src/slice.hpp @@ -0,0 +1,35 @@ +#pragma once + +#include + +template +class slice +{ + T* ptr; + size_t len; +public: + slice(T* ptr, size_t len): ptr(ptr), len(len) {} + + T* begin() { return ptr; } + T* end() { return ptr + len; } + const T* begin() const { return ptr; } + const T* end() const { return ptr + len; } +}; + +namespace std { + template + ostream& operator<<(ostream& os, const slice& x) { + os << "["; + bool first = true; + for(const auto& e : x) + { + if(!first) + os << ","; + first = false; + os << e; + } + os << "]"; + return os; + } +} + -- cgit v1.2.3