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