Consider the following function:
template void remove_unordered(std::vector& vec, T const& val) { auto first = begin(vec); whi