std::next_permutation