File indexing completed on 2024-05-12 05:29:23
0001 /* 0002 * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic <ivan.cukic@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #pragma once 0008 0009 #include <algorithm> 0010 0011 // Inspired by C++ Seasoning talk by Sean Parent 0012 0013 namespace kamd 0014 { 0015 namespace utils 0016 { 0017 template<typename Iterator> 0018 void slide(Iterator f, Iterator l, Iterator p) 0019 { 0020 if (p < f) { 0021 std::rotate(p, f, l); 0022 } else if (l < p) { 0023 std::rotate(f, l, p); 0024 } 0025 } 0026 0027 template<typename Iterator> 0028 void slide_one(Iterator f, Iterator p) 0029 { 0030 slide(f, f + 1, p); 0031 } 0032 0033 } // namespace utils 0034 } // namespace kamd