libkazv
range-t.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of libkazv.
3  * SPDX-FileCopyrightText: 2021 Tusooa Zhu <tusooa@kazv.moe>
4  * SPDX-License-Identifier: AGPL-3.0-or-later
5  */
6 
7 #pragma once
8 
9 static_assert(false, "This is an *interface*, not an actual class in the library.");
10 
11 #include <cstddef>
12 
19 template<class T>
20 class RangeT
21 {
22 public:
24  using DataT = T;
25 
29  auto begin() const;
30 
34  auto end() const;
35 
41  const DataT &at(std::size_t index) const;
42 
49  const DataT &operator[](std::size_t index) const;
50 };
RangeT
A RangeT is an ordered collection that can be iterated through.
Definition: range-t.hpp:20
RangeT::begin
auto begin() const
The beginning iterator of this range.
RangeT::DataT
T DataT
The type of items in this range.
Definition: range-t.hpp:24
RangeT::operator[]
const DataT & operator[](std::size_t index) const
Get the item at index without bound-checking.
RangeT::end
auto end() const
The past-end iterator of this range.
RangeT::at
const DataT & at(std::size_t index) const
Get the item at index with bound-checking.