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