From 11e5c0dcd22c24a34e6f7ded4beae07e80227cab Mon Sep 17 00:00:00 2001 From: GeorgH93 Date: Thu, 4 Mar 2021 20:49:11 +0100 Subject: [PATCH] Make operators constexpr --- openVulkanoCpp/Math/ByteSize.hpp | 52 +++++++++++++++----------------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/openVulkanoCpp/Math/ByteSize.hpp b/openVulkanoCpp/Math/ByteSize.hpp index 38fff61..c527f34 100644 --- a/openVulkanoCpp/Math/ByteSize.hpp +++ b/openVulkanoCpp/Math/ByteSize.hpp @@ -127,33 +127,31 @@ namespace openVulkanoCpp operator std::string() const { return Format(); } }; - // floating-point numbers, like 5.5_kB - inline ByteSize operator"" _kiB(long double num) { return { num, ByteSizeUnit::kiB }; } - inline ByteSize operator"" _MiB(long double num) { return { num, ByteSizeUnit::MiB }; } - inline ByteSize operator"" _GiB(long double num) { return { num, ByteSizeUnit::GiB }; } - inline ByteSize operator"" _TiB(long double num) { return { num, ByteSizeUnit::TiB }; } - inline ByteSize operator"" _PiB(long double num) { return { num, ByteSizeUnit::PiB }; } - inline ByteSize operator"" _EiB(long double num) { return { num, ByteSizeUnit::EiB }; } - inline ByteSize operator"" _kB(long double num) { return { num, ByteSizeUnit::kB }; } - inline ByteSize operator"" _MB(long double num) { return { num, ByteSizeUnit::MB }; } - inline ByteSize operator"" _GB(long double num) { return { num, ByteSizeUnit::GB }; } - inline ByteSize operator"" _TB(long double num) { return { num, ByteSizeUnit::TB }; } - inline ByteSize operator"" _PB(long double num) { return { num, ByteSizeUnit::PB }; } - inline ByteSize operator"" _EB(long double num) { return { num, ByteSizeUnit::EB }; } - // repeated for integer literals so that e.g. 5_kB works - inline ByteSize operator"" _B(unsigned long long int num) { return { num }; } // bytes only with integer - inline ByteSize operator"" _kiB(unsigned long long int num) { return { num << 10 }; } - inline ByteSize operator"" _MiB(unsigned long long int num) { return { num << 20 }; } - inline ByteSize operator"" _GiB(unsigned long long int num) { return { num << 30 }; } - inline ByteSize operator"" _TiB(unsigned long long int num) { return { num << 40 }; } - inline ByteSize operator"" _PiB(unsigned long long int num) { return { num << 50 }; } - inline ByteSize operator"" _EiB(unsigned long long int num) { return { num << 60 }; } - inline ByteSize operator"" _kB(unsigned long long int num) { return { num, ByteSizeUnit::kB }; } - inline ByteSize operator"" _MB(unsigned long long int num) { return { num, ByteSizeUnit::MB }; } - inline ByteSize operator"" _GB(unsigned long long int num) { return { num, ByteSizeUnit::GB }; } - inline ByteSize operator"" _TB(unsigned long long int num) { return { num, ByteSizeUnit::TB }; } - inline ByteSize operator"" _PB(unsigned long long int num) { return { num, ByteSizeUnit::PB }; } - inline ByteSize operator"" _EB(unsigned long long int num) { return { num, ByteSizeUnit::EB }; } + inline constexpr ByteSize operator"" _kiB(long double num) { return { num, ByteSizeUnit::kiB }; } + inline constexpr ByteSize operator"" _MiB(long double num) { return { num, ByteSizeUnit::MiB }; } + inline constexpr ByteSize operator"" _GiB(long double num) { return { num, ByteSizeUnit::GiB }; } + inline constexpr ByteSize operator"" _TiB(long double num) { return { num, ByteSizeUnit::TiB }; } + inline constexpr ByteSize operator"" _PiB(long double num) { return { num, ByteSizeUnit::PiB }; } + inline constexpr ByteSize operator"" _EiB(long double num) { return { num, ByteSizeUnit::EiB }; } + inline constexpr ByteSize operator"" _kB(long double num) { return { num, ByteSizeUnit::kB }; } + inline constexpr ByteSize operator"" _MB(long double num) { return { num, ByteSizeUnit::MB }; } + inline constexpr ByteSize operator"" _GB(long double num) { return { num, ByteSizeUnit::GB }; } + inline constexpr ByteSize operator"" _TB(long double num) { return { num, ByteSizeUnit::TB }; } + inline constexpr ByteSize operator"" _PB(long double num) { return { num, ByteSizeUnit::PB }; } + inline constexpr ByteSize operator"" _EB(long double num) { return { num, ByteSizeUnit::EB }; } + inline constexpr ByteSize operator"" _B(unsigned long long int num) { return { num }; } + inline constexpr ByteSize operator"" _kiB(unsigned long long int num) { return { num << 10 }; } + inline constexpr ByteSize operator"" _MiB(unsigned long long int num) { return { num << 20 }; } + inline constexpr ByteSize operator"" _GiB(unsigned long long int num) { return { num << 30 }; } + inline constexpr ByteSize operator"" _TiB(unsigned long long int num) { return { num << 40 }; } + inline constexpr ByteSize operator"" _PiB(unsigned long long int num) { return { num << 50 }; } + inline constexpr ByteSize operator"" _EiB(unsigned long long int num) { return { num << 60 }; } + inline constexpr ByteSize operator"" _kB(unsigned long long int num) { return { num, ByteSizeUnit::kB }; } + inline constexpr ByteSize operator"" _MB(unsigned long long int num) { return { num, ByteSizeUnit::MB }; } + inline constexpr ByteSize operator"" _GB(unsigned long long int num) { return { num, ByteSizeUnit::GB }; } + inline constexpr ByteSize operator"" _TB(unsigned long long int num) { return { num, ByteSizeUnit::TB }; } + inline constexpr ByteSize operator"" _PB(unsigned long long int num) { return { num, ByteSizeUnit::PB }; } + inline constexpr ByteSize operator"" _EB(unsigned long long int num) { return { num, ByteSizeUnit::EB }; } } template<> struct fmt::formatter