#pragma once #include #include #include "node.hh" class List { public: List(); void push_front(int i); void push_back(int i); std::optional pop_front(); std::optional pop_back(); void print(std::ostream& os) const; size_t length() const; private: size_t nb_elts_; std::shared_ptr first_; std::shared_ptr last_; };