10#ifndef TLAPACK_STDVECTOR_HH
11#define TLAPACK_STDVECTOR_HH
15#if __cplusplus >= 202002L
26 constexpr span(It first, std::size_t count) : ptr_(&(*first)), len_(count)
28 constexpr T& operator[](std::size_t idx)
const {
return ptr_[idx]; }
30 constexpr std::size_t size() const noexcept {
return len_; }
31 constexpr T* data() const noexcept {
return ptr_; }
45 template <
typename T,
typename A>
60template <
class T,
class Allocator>
61constexpr auto size(
const std::vector<T, Allocator>&
x)
noexcept
66constexpr auto size(
const std::span<T>& x)
noexcept
77 std::enable_if_t<traits::is_stdvector_type<vec_t>,
int> = 0>
78constexpr auto slice(
const vec_t& v, SliceSpec&& rows)
noexcept
80 assert((rows.first >= 0 && (std::size_t)rows.first < size(v)) ||
81 rows.first == rows.second);
82 assert(rows.second >= 0 && (std::size_t)rows.second <= size(v));
83 assert(rows.first <= rows.second);
85 using T = type_t<vec_t>;
86 return std::span<T>((T*)v.data() + rows.first, rows.second - rows.first);
typename traits::real_type_traits< Types..., int >::type real_type
The common real type of the list of types.
Definition scalar_type_traits.hpp:113
Definition stdvector.hpp:43