From: <sv...@op...> - 2024-11-29 09:09:00
|
Author: manx Date: Fri Nov 29 10:08:49 2024 New Revision: 22338 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=22338 Log: [Fix] mptTime: Add some trivial std::chrono shims for C++17. Modified: trunk/OpenMPT/common/mptTime.h trunk/OpenMPT/mptrack/AutoSaver.cpp trunk/OpenMPT/mptrack/AutoSaver.h Modified: trunk/OpenMPT/common/mptTime.h ============================================================================== --- trunk/OpenMPT/common/mptTime.h Thu Nov 28 23:39:49 2024 (r22337) +++ trunk/OpenMPT/common/mptTime.h Fri Nov 29 10:08:49 2024 (r22338) @@ -15,6 +15,8 @@ #if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE) #include <chrono> #include <exception> +#elif MPT_CXX_AT_LEAST(17) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && defined(MODPLUG_TRACKER) +#include <chrono> #endif #include <string> @@ -37,6 +39,28 @@ +#if defined(MODPLUG_TRACKER) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) + +namespace mpt { +namespace chrono { +#if MPT_CXX_AT_LEAST(20) +using days = std::chrono::days; +using weeks = std::chrono::weeks; +using years = std::chrono::years; +using months = std::chrono::months; +#else +using days = std::chrono::duration<int, std::ratio_multiply<std::ratio<24>, std::chrono::hours::period>>; +using weeks = std::chrono::duration<int, std::ratio_multiply<std::ratio<7>, mpt::chrono::days::period>>; +using years = std::chrono::duration<int, std::ratio_multiply<std::ratio<146097, 400>, mpt::chrono::days::period>>; +using months = std::chrono::duration<int, std::ratio_divide<mpt::chrono::years::period, std::ratio<12>>>; +#endif +} +} + +#endif // !MPT_LIBCXX_QUIRK_NO_CHRONO + + + namespace mpt { namespace Date Modified: trunk/OpenMPT/mptrack/AutoSaver.cpp ============================================================================== --- trunk/OpenMPT/mptrack/AutoSaver.cpp Thu Nov 28 23:39:49 2024 (r22337) +++ trunk/OpenMPT/mptrack/AutoSaver.cpp Fri Nov 29 10:08:49 2024 (r22338) @@ -59,9 +59,9 @@ } -std::chrono::days CAutoSaver::GetRetentionTime() const +mpt::chrono::days CAutoSaver::GetRetentionTime() const { - return std::chrono::days{TrackerSettings::Instance().AutosaveRetentionTimeDays.Get()}; + return mpt::chrono::days{TrackerSettings::Instance().AutosaveRetentionTimeDays.Get()}; } Modified: trunk/OpenMPT/mptrack/AutoSaver.h ============================================================================== --- trunk/OpenMPT/mptrack/AutoSaver.h Thu Nov 28 23:39:49 2024 (r22337) +++ trunk/OpenMPT/mptrack/AutoSaver.h Fri Nov 29 10:08:49 2024 (r22338) @@ -12,7 +12,7 @@ #include "openmpt/all/BuildSettings.hpp" -#include <chrono> +#include "../common/mptTime.h" OPENMPT_NAMESPACE_BEGIN @@ -30,7 +30,7 @@ mpt::PathString GetPath() const; uint32 GetHistoryDepth() const; std::chrono::minutes GetSaveInterval() const; - std::chrono::days GetRetentionTime() const; + mpt::chrono::days GetRetentionTime() const; private: bool SaveSingleFile(CModDoc &modDoc); |