6 template <
typename TYPE>
9 virtual void add(
const TYPE& e);
10 virtual TYPE remove(
const TYPE& e);
12 virtual void push(int64_t index,
const TYPE& e) = 0;
13 virtual TYPE pop(int64_t index) = 0;
14 virtual void pushBegin(
const TYPE& e) = 0;
15 virtual TYPE popBegin() = 0;
16 virtual void pushEnd(
const TYPE& e) = 0;
17 virtual TYPE popEnd() = 0;
21 template <
typename TYPE>
22 auto original::baseList<TYPE>::add(
const TYPE &e) ->
void
27 template <
typename TYPE>
28 auto original::baseList<TYPE>::remove(
const TYPE& e) -> TYPE
30 const int64_t index = this->indexOf(e);
31 return this->pop(index);
34 template<
typename TYPE>
35 auto original::baseList<TYPE>::clear() ->
void {
36 while (!this->empty()) {