template class ForwardList { public: explicit ForwardList(int numElems = 0, const ElemType& defaultValue = ElemType()); template ForwardList(InputIterator begin, InputIterator end); ~ForwardList(); ForwardList(const ForwardList& other); ForwardList& operator =(const ForwardList& other); ForwardList(ForwardList&& other); ForwardList& operator =(ForwardList&& other); typedef something-implementation-specific iterator; typedef something-implementation-specific const_iterator; iterator begin(); iterator end(); const_iterator cbegin() const; const_iterator cend() const; void push_front(const ElemType& value); void pop_front(); ElemType& front(); const ElemType& front() const; bool empty() const; int size() const; private: /* ... implementation details ... */ };