list


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();
};