From 3b243260c03242a21351a92ed16d37ba6641b61e Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Wed, 11 Jun 2025 17:06:20 +0200 Subject: [PATCH] Add double constructor for Version --- openVulkanoCpp/Base/Version.cpp | 16 ++++++++++++++++ openVulkanoCpp/Base/Version.hpp | 2 ++ 2 files changed, 18 insertions(+) diff --git a/openVulkanoCpp/Base/Version.cpp b/openVulkanoCpp/Base/Version.cpp index 5d2c6e5..96fca9d 100644 --- a/openVulkanoCpp/Base/Version.cpp +++ b/openVulkanoCpp/Base/Version.cpp @@ -178,4 +178,20 @@ namespace OpenVulkano return CompareTimestamp(other); } //endregion + + namespace + { + uint32_t GetDigits(double val) + { + if (val == 0) return 0; + std::string fracStr = std::to_string(val); + fracStr.erase(fracStr.find_last_not_of('0') + 1, std::string::npos); + fracStr.erase(0, fracStr.find_first_of('.') + 1); + return std::stoul(fracStr); + } + } + + Version::Version(double version) + : Version(static_cast(version), GetDigits(version)) + {} } diff --git a/openVulkanoCpp/Base/Version.hpp b/openVulkanoCpp/Base/Version.hpp index cc39342..cb8b3a5 100644 --- a/openVulkanoCpp/Base/Version.hpp +++ b/openVulkanoCpp/Base/Version.hpp @@ -32,6 +32,8 @@ namespace OpenVulkano Version(std::string_view versionString, bool ignoreTags = false); + explicit Version(double version); + [[nodiscard]] uint32_t GetComponent(size_t compId) const { if (m_versionComponents.size() < compId + 1) return 0u;