Adding new observers
template< class E > int length(list< E >* l) {return l->empty() ? 0 : 1 + length( l->tail() ); } template< class E > class listWL : public list<E> {
length public: int length() { return ::length( this ); } };
listWL
template< class E > int length(list< E >* l) {return l->empty() ? 0 : 1 + length( l->tail() ); } template< class E > class listWL : public list<E> {
length public: int length() { return ::length( this ); } };
listWL