Find outlines of a tile collection
Your code makes remarkably good usage of modern C++ idioms. Bravo!

The only improvement that jumps out to me is the signature of vertex_of. By reading its definition, you can deduce that it returns a std::vector&lt;line&gt;, but ideally this should be documented in the declaration itself. I'd advice changing the signature to either

std::vector&lt;line&gt; vertex_of(const container_t&lt;cell&gt; &amp;cells)


or

auto vertex_of(const container_t&lt;cell&gt; &amp;cells) -&gt; std::vector&lt;line&gt;


depending on the stlye you prefer.