Make operators constexpr

This commit is contained in:
2021-03-04 20:49:11 +01:00
parent 3787249d34
commit 11e5c0dcd2

View File

@@ -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<openVulkanoCpp::ByteSize>