template void move(std::vector& v, size_t oldIndex, size_t newIndex) { if (oldIndex > newIndex) std::rotate(v.rend() - oldIndex - 1, v.rend() - oldIndex, v.rend() - newIndex); else std::rotate(v.begin() + oldIndex, v.begin() + oldIndex + 1, v.begin() + newIndex + 1); } auto initial_pos = 1; auto final_pos = 4; move(some_vector, initial_pos, final_pos);