// SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 //! \file #ifndef SWIFT_MISC_COMPAREFUNCTIONS_H #define SWIFT_MISC_COMPAREFUNCTIONS_H #include #include #include namespace swift::misc::Compare { //! Compare arithmetic values template , int> = 0> int compare(T a, T b) { if (a < b) { return -1; } if (b < a) { return 1; } return 0; } //! Compare enumerators template , int> = 0> int compare(T a, T b) { using UT = std::underlying_type_t; return compare(static_cast(a), static_cast(b)); } //! Compare QFlags template int compare(QFlags a, QFlags b) { using UT = typename QFlags::Int; return compare(static_cast(a), static_cast(b)); } //! Compare dates inline int compare(const QDateTime &a, const QDateTime &b) { return compare(a.toMSecsSinceEpoch(), b.toMSecsSinceEpoch()); } } // namespace swift::misc::Compare #endif // SWIFT_MISC_COMPAREFUNCTIONS_H