1#ifndef VEG_SLICE_HPP_GKSTE2JDS
2#define VEG_SLICE_HPP_GKSTE2JDS
9#include <initializer_list>
14template<
typename T, usize N>
30 T
const* data =
nullptr;
66 return ref(*(data + idx));
91 ->
Slice<
unsigned char>
96 reinterpret_cast<unsigned char const*
>(data),
97 isize(
sizeof(T)) * size,
137 return const_cast<T&
>(
static_cast<Slice<T> const&
>(*this)[idx]);
143 return const_cast<T*
>(
ptr());
150 return mut(
const_cast<T&
>(*(this->data + idx)));
158 reinterpret_cast<unsigned char*
>(ptr_mut()),
186template<
typename T, isize N>
189 static_assert(N > 0,
".");
#define VEG_NIEBLOID(Name)
_detail::_meta::make_signed< usize >::Type isize
decltype(sizeof(0)) usize
#define VEG_INTERNAL_ASSERT_PRECONDITION
VEG_NODISCARD VEG_INLINE auto as_mut_bytes() VEG_NOEXCEPT -> SliceMut< unsigned char >
VEG_NODISCARD VEG_INLINE auto get_mut_unchecked(Unsafe, isize idx) VEG_NOEXCEPT -> RefMut< T >
VEG_INLINE constexpr SliceMut()=default
VEG_NODISCARD VEG_INLINE VEG_CPP14(constexpr) auto ptr_mut() VEG_NOEXCEPT -> T *
VEG_NODISCARD VEG_INLINE VEG_CPP14(constexpr) auto split_at_mut(isize idx) VEG_NOEXCEPT -> Tuple< SliceMut< T >, SliceMut< T > >
VEG_NODISCARD VEG_INLINE constexpr auto as_const() const noexcept -> Slice< T >
VEG_NODISCARD VEG_INLINE VEG_CPP14(constexpr) auto operator[](isize idx) VEG_NOEXCEPT -> T &
VEG_INLINE constexpr SliceMut(Unsafe, FromRawParts, T const *data_, isize count) VEG_NOEXCEPT
VEG_INLINE constexpr Slice(Unsafe, FromRawParts, T const *data_, isize count) VEG_NOEXCEPT
VEG_NODISCARD VEG_INLINE constexpr auto len() const VEG_NOEXCEPT -> isize
VEG_NODISCARD VEG_INLINE constexpr auto ptr() const VEG_NOEXCEPT -> T const *
VEG_NODISCARD VEG_INLINE constexpr auto get_unchecked(Unsafe, isize idx) const VEG_NOEXCEPT -> Ref< T >
VEG_INLINE constexpr Slice()=default
VEG_NODISCARD VEG_INLINE constexpr auto operator[](isize idx) const VEG_NOEXCEPT -> T const &
VEG_NODISCARD VEG_INLINE constexpr auto split_at(isize idx) const VEG_NOEXCEPT -> Tuple< Slice< T >, Slice< T > >
VEG_NODISCARD VEG_INLINE auto as_bytes() const VEG_NOEXCEPT -> Slice< unsigned char >
T _[static_cast< usize >(N)]
VEG_CPP14(constexpr) auto as_mut() -> SliceMut< T >
constexpr auto as_ref() const -> Slice< T >