#pragma once namespace JTL // Jack's template library { template <typename T> ListNodePosi(T) List<T>::insert_as_first(T const& e) { _size++; return header->insert_as_succ(e); } template <typename T> ListNodePosi(T) List<T>::insert_as_last(T const& e) { _size++; return trailer->insert_as_pred(e); } template <typename T> ListNodePosi(T) List<T>::insert_after(ListNodePosi(T) p, T const& e) { _size++; return p->insert_as_succ(e); } template <typename T> ListNodePosi(T) List<T>::insert_before(ListNodePosi(T) p, T const& e) { _size++; return p->insert_as_pred(e); } };