Support building ArrayView from contigous iterators
This commit is contained in:
parent
feeacd8de9
commit
fbbced5ed0
|
@ -27,6 +27,11 @@ public:
|
|||
constexpr ArrayView(T* begin, T* end)
|
||||
: m_pointer(begin), m_size(end - begin) {}
|
||||
|
||||
template<typename It>
|
||||
requires std::contiguous_iterator<It> and std::is_same_v<std::iter_value_t<It>, T>
|
||||
constexpr ArrayView(It begin, It end)
|
||||
: m_pointer(&*begin), m_size(end - begin) {}
|
||||
|
||||
template<size_t N>
|
||||
constexpr ArrayView(T(&array)[N]) : m_pointer(array), m_size(N) {}
|
||||
|
||||
|
@ -68,6 +73,10 @@ private:
|
|||
size_t m_size;
|
||||
};
|
||||
|
||||
template<typename It>
|
||||
requires std::contiguous_iterator<It>
|
||||
ArrayView(It begin, It end) -> ArrayView<std::iter_value_t<It>>;
|
||||
|
||||
template<typename T>
|
||||
using ConstArrayView = ArrayView<const T>;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user