sandbox
Loading...
Searching...
No Matches
bytes.hpp
1// SPDX-License-Identifier: MIT
2#ifndef LIBSBX_UNITS_BYTES_HPP_
3#define LIBSBX_UNITS_BYTES_HPP_
4
5#include <libsbx/units/quantity.hpp>
6
7namespace sbx::units {
8
9namespace detail {
10
11struct byte_tag { };
12
13} // namespace detail
14
15using kibi = std::ratio<1024>;
16using mebi = std::ratio<1024 * 1024>;
17using gibi = std::ratio<1024 * 1024 * 1024>;
18
26
27namespace literals {
28
29constexpr auto operator""_gib(unsigned long long value) -> gibibyte {
30 return gibibyte{value};
31}
32
33constexpr auto operator""_gb(unsigned long long value) -> gigabyte {
34 return gigabyte{value};
35}
36
37constexpr auto operator""_mib(unsigned long long value) -> mebibyte {
38 return mebibyte{value};
39}
40
41constexpr auto operator""_mb(unsigned long long value) -> megabyte {
42 return megabyte{value};
43}
44
45constexpr auto operator""_kib(unsigned long long value) -> kibibyte {
46 return kibibyte{value};
47}
48
49constexpr auto operator""_kb(unsigned long long value) -> kilobyte {
50 return kilobyte{value};
51}
52
53constexpr auto operator""_b(unsigned long long value) -> byte {
54 return byte{value};
55}
56
57} // namespace literals
58
59} // namespace sbx::units
60
61#endif // LIBSBX_UNITS_BYTES_HPP_
Definition: quantity.hpp:66
Definition: bytes.hpp:11