#pragma once namespace JTL // Jack's template library { template T List::remove(ListNodePosi(T) p) { assert(valid(p)); T data = p->data; p->pred->succ = p->succ; p->succ->pred = p->pred; delete p; _size--; return data; } };