Ошибка при создании итератора

При создании итератора компилятор пишет "непредвиденные лексемы перед ;" и "синтаксическая ошибка: идентификатор "iterator" " не могу понять в чем причина...

#include <list>
#include <iterator>
#include <iostream>
using namespace std;
template <typename T>
class LinkedList  {
private:
    list <T> spisok;
   public:
    int size;
    list <T> :: iterator begin, end;

private:
    void BE() {
        begin = spisok.begin();
        end = spisok.end();
        return;
    }
    void LC() {
        size = spisok.size();
        return;
    } 
public:

    LinkedList() {
        LC();
        BE();
    }
    LinkedList(T n ...) {
        auto* p = &n;
        while (*p) {
            spisok.push_back(*p);
            p++;
        }
        LC();
        BE();
    }
    LinkedList(LinkedList &copyList) {
        for (int i = 0; i < copyList.size; i++) {
            spisok.push_back(copyList.GetAt(i));
        }
        LC();
        BE();
    }
    void Append(T x) {
        spisok.push_back(x);
        LC();
        BE();
    }
    void Prepend(T x) {
        spisok.push_front(x);
        LC();
        BE();
    }
    void AppendAll(LinkedList copyList) {
        spisok.merge(copyList);
        LC();
        BE();
    }
    void InsertAt(int a, int x) {
        auto it = spisok.begin();
        a--;
        advance(it, a);
        spisok.emplace(it, x);
        LC();
        BE();
    }
    void RemoveAt(int a) {
        auto it = spisok.begin();
        a--;
        advance(it, a);
        LC();
        BE();
    }
    void RemoveAll() {
        spisok.clear();
        LC();
        BE();
    }
    auto Pop() {
        int s = size - 1;
        auto ret = GetAt(s);
        spisok.pop_back();
        LC();
        BE();
        return ret;
    }
    auto Dequeue() {
        auto ret = GetAt(0);
        spisok.pop_front;
        LC();
        BE();
        return ret;
    }
    int Length() {
        return spisok.size();
    }
    auto GetAt(int a) {
        auto it = spisok.begin();
        a--;
        advance(it, a);
        return *it;
    }


};

Ответы (0 шт):