template <class t, class compare = core::compare<t>> struct list { typedef list_iterator<t> iterator; list(); list(const list& copy); template<class I> list(I first,I last); list(std::initializer_list<t> l); list(const list& copy); ~list(); list& operator=(const list& copy); list& operator<<(const t& data); const t& back() const; t& back(); iterator begin() const; iterator end() const; void erase(); iterator insert(const t& data); iterator last() const; long long length() const; void sort(); };