7 template <
typename TYPE>
10 [[nodiscard]]
bool indexOutOfBound(int64_t index)
const;
11 [[nodiscard]] int64_t parseNegIndex(int64_t index)
const;
13 virtual TYPE get(int64_t index)
const = 0;
14 virtual TYPE getBegin()
const;
15 virtual TYPE getEnd()
const;
16 virtual TYPE operator[](int64_t index)
const;
17 virtual TYPE& operator[](int64_t index) = 0;
18 virtual void set(int64_t index,
const TYPE& e) = 0;
19 virtual uint32_t indexOf(
const TYPE& e)
const = 0;
20 bool contains(
const TYPE& e)
const override;
24 template<
typename TYPE>
25 auto original::serial<TYPE>::indexOutOfBound(
const int64_t index)
const ->
bool
27 int64_t parsed_index = this->parseNegIndex(index);
28 return parsed_index < 0 || parsed_index >= this->size();
31 template<
typename TYPE>
32 auto original::serial<TYPE>::parseNegIndex(int64_t index)
const -> int64_t {
33 return index >= 0 ? index : this->size() + index;
36 template<
typename TYPE>
37 auto original::serial<TYPE>::getBegin() const -> TYPE {
41 template<
typename TYPE>
42 auto original::serial<TYPE>::getEnd() const -> TYPE {
46 template <
typename TYPE>
47 auto original::serial<TYPE>::operator[](
const int64_t index)
const -> TYPE
49 return this->get(index);
52 template <
typename TYPE>
53 auto original::serial<TYPE>::contains(
const TYPE &e)
const ->
bool
55 return this->indexOf(e) != this->size();
Definition container.h:10