/** ** \file misc/list.hh ** \brief Implementation of misc::list */ #pragma once #include namespace misc::list { template inline vector cons(const T head, const vector& tail) { vector res; res.emplace_back(head); res.append(tail); return res; } template inline std::pair> snoc(const vector& v) { precondition(v.size() > 0); T head = v[0]; vector tail(v.begin() + 1, v.end()); return {head, tail}; } template inline std::array decompose(const vector& v) { precondition(v.size() == Size_); std::array res; std::copy(v.begin(), v.end(), res.begin()); return res; } } // namespace misc::list