14 template<std::
size_t Dim,
typename T = std::ptrdiff_t>
35 return (a.start_ == b.start_) && (a.end_ == b.end_);
38 return (a.start_ != b.start_) || (a.end_ != b.end_);
53 template<std::
size_t Dim,
typename T>
59 template<std::
size_t Dim,
typename T>
60 std::ostream& operator<<(std::ostream& str, const ndspan<Dim, T>& span) {
61 str <<
'[' << span.
start_pos() <<
", " << span.end_pos() <<
'[';
66 template<std::
size_t Dim,
typename T>
67 ndspan<Dim, T>
span_intersection(
const ndspan<Dim, T>& a,
const ndspan<Dim, T>& b);
shape_type shape() const
Definition: ndspan.h:46
ndspan & operator=(const ndspan &) noexcept=default
bool includes_strict(const ndspan &sub) const
Definition: ndspan.tcc:30
const coordinates_type & end_pos() const noexcept
Definition: ndspan.h:32
T product() const noexcept
Definition: ndcoord.h:111
ndspan< Dim, T > make_ndspan(const ndcoord< Dim, T > &start, const ndcoord< Dim, T > &end)
Definition: ndspan.h:54
Cuboid n-dimensional span delimited by two ndcoord vectors.
Definition: ndspan.h:15
std::size_t size() const
Definition: ndspan.h:47
const coordinates_type & start_pos() const noexcept
Definition: ndspan.h:31
ndspan< Dim, T > span_intersection(const ndspan< Dim, T > &a, const ndspan< Dim, T > &b)
Definition: ndspan.tcc:38
bool includes(const coordinates_type &) const
Definition: ndspan.tcc:14
friend bool operator!=(const ndspan &a, const ndspan &b) noexcept
Definition: ndspan.h:37
friend bool operator==(const ndspan &a, const ndspan &b) noexcept
Definition: ndspan.h:34
ndcoord< Dim, T > coordinates_type
Definition: ndspan.h:17