25 date()
noexcept =
default;
30 constexpr date(
Y y,
M m,
D d)
noexcept
31 : year{
static_cast<uint16_t
>(
y)},
32 month{
static_cast<uint8_t
>(
m)},
33 day{
static_cast<uint8_t
>(
d)} {}
37 friend constexpr bool operator==(
const date&
lhs,
const date&
rhs)
noexcept {
38 return lhs.year ==
rhs.year
45 friend constexpr bool operator!=(
const date&
lhs,
const date&
rhs)
noexcept {
53 static constexpr uint32_t pack(
const date&
d)
noexcept {
54 return (
static_cast<uint32_t
>(
d.year) << 16) | (
static_cast<uint32_t
>(
d.month) << 8) |
55 static_cast<uint32_t
>(
d.day);
63 friend constexpr bool operator<(
const date&
lhs,
const date&
rhs)
noexcept {
64 return pack(
lhs) < pack(
rhs);
69 friend constexpr bool operator<=(
const date&
lhs,
const date&
rhs)
noexcept {
70 return pack(
lhs) <= pack(
rhs);
75 friend constexpr bool operator>(
const date&
lhs,
const date&
rhs)
noexcept {
76 return pack(
lhs) > pack(
rhs);
81 friend constexpr bool operator>=(
const date&
lhs,
const date&
rhs)
noexcept {
82 return pack(
lhs) >= pack(
rhs);
95 impl::print_to_stream(
lhs,
rhs);
120 typename
S = uint8_t, typename NS = uint32_t)
123 : hour{static_cast<uint8_t>(h)},
124 minute{static_cast<uint8_t>(
m)},
125 second{static_cast<uint8_t>(
s)},
126 nanosecond{static_cast<uint32_t>(ns)} {}
131 return lhs.hour ==
rhs.hour
132 &&
lhs.minute ==
rhs.minute
133 &&
lhs.second ==
rhs.second
134 &&
lhs.nanosecond ==
rhs.nanosecond;
147 static constexpr uint64_t pack(
const time&
t)
noexcept {
148 return static_cast<uint64_t
>(
t.hour) << 48 |
static_cast<uint64_t
>(
t.minute) << 40 |
149 static_cast<uint64_t
>(
t.second) << 32 |
static_cast<uint64_t
>(
t.nanosecond);
158 return pack(
lhs) < pack(
rhs);
163 friend constexpr bool operator<=(
const time&
lhs,
const time&
rhs)
noexcept {
164 return pack(
lhs) <= pack(
rhs);
170 return pack(
lhs) > pack(
rhs);
175 friend constexpr bool operator>=(
const time&
lhs,
const time&
rhs)
noexcept {
176 return pack(
lhs) >= pack(
rhs);
190 impl::print_to_stream(
lhs,
rhs);
228 : minutes{
static_cast<int16_t
>(
static_cast<impl::common_signed_type<H, M>
>(h) *
229 impl::common_signed_type<H, M>{60} +
230 static_cast<impl::common_signed_type<H, M>
>(
m))} {}
235 return lhs.minutes ==
rhs.minutes;
241 return lhs.minutes !=
rhs.minutes;
247 return lhs.minutes <
rhs.minutes;
253 return lhs.minutes <=
rhs.minutes;
259 return lhs.minutes >
rhs.minutes;
265 return lhs.minutes >=
rhs.minutes;
285 impl::print_to_stream(
lhs,
rhs);
291#define TOML_STD std::
353 const toml::time_offset&
off) noexcept
363 return lhs.date ==
rhs.date
365 &&
lhs.offset ==
rhs.offset;
379 return lhs.offset <
rhs.offset;
387 return lhs.offset <=
rhs.offset;
415 impl::print_to_stream(
lhs,
rhs);
std::basic_ostream< Char > & operator<<(std::basic_ostream< Char > &lhs, node_type rhs)
Pretty-prints the value of a node_type to a stream.
bool operator>(const DistancePair &lhs, const DistancePair &rhs)
#define TOML_HAS_CUSTOM_OPTIONAL_TYPE
bool operator==(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
bool operator!=(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
bool operator<(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
The root namespace for all toml++ functions and types.
#define TOML_NODISCARD_CTOR
#define TOML_ABI_NAMESPACE_BOOL(cond, T, F)
#define TOML_CONSTRAINED_TEMPLATE(condition,...)
#define TOML_PURE_INLINE_GETTER
TOML_NODISCARD_CTOR constexpr date_time(const toml::date &d) noexcept
Constructs a local date-time.
toml::date date
The date component.
TOML_PURE_INLINE_GETTER friend constexpr bool operator>(const date_time &lhs, const date_time &rhs) noexcept
Greater-than operator.
TOML_PURE_INLINE_GETTER friend constexpr bool operator!=(const date_time &lhs, const date_time &rhs) noexcept
Inequality operator.
TOML_PURE_GETTER friend constexpr bool operator==(const date_time &lhs, const date_time &rhs) noexcept
Equality operator.
toml::time time
The time component.
TOML_STD optional< toml::time_offset > offset
The timezone offset component.
TOML_PURE_GETTER friend constexpr bool operator<(const date_time &lhs, const date_time &rhs) noexcept
Less-than operator.
TOML_PURE_GETTER friend constexpr bool operator<=(const date_time &lhs, const date_time &rhs) noexcept
Less-than-or-equal-to operator.
TOML_NODISCARD_CTOR date_time() noexcept=default
Default constructor. Does not initialize the members.
TOML_PURE_INLINE_GETTER constexpr bool is_local() const noexcept
Returns true if this date_time does not contain timezone offset information.
TOML_PURE_INLINE_GETTER friend constexpr bool operator>=(const date_time &lhs, const date_time &rhs) noexcept
Greater-than-or-equal-to operator.
friend std::ostream & operator<<(std::ostream &lhs, const date_time &rhs)
Prints a date_time out to a stream in RFC 3339 format. \detail \cpp std::cout << toml::date_time{ { 1...
TOML_NODISCARD_CTOR constexpr date_time(const toml::date &d, const toml::time &t, const toml::time_offset &off) noexcept
Constructs an offset date-time.
TOML_NODISCARD_CTOR constexpr date_time(const toml::time &t) noexcept
Constructs a local date-time.
TOML_PURE_INLINE_GETTER friend constexpr bool operator<=(time_offset lhs, time_offset rhs) noexcept
Less-than-or-equal-to operator.
friend std::ostream & operator<<(std::ostream &lhs, const time_offset &rhs)
Prints a time_offset out to a stream as +-HH:MM or Z (per RFC 3339). \detail \cpp std::cout << toml::...
TOML_PURE_INLINE_GETTER friend constexpr bool operator>(time_offset lhs, time_offset rhs) noexcept
Greater-than operator.
TOML_PURE_INLINE_GETTER friend constexpr bool operator<(time_offset lhs, time_offset rhs) noexcept
Less-than operator.
TOML_PURE_INLINE_GETTER friend constexpr bool operator>=(time_offset lhs, time_offset rhs) noexcept
Greater-than-or-equal-to operator.
int16_t minutes
Offset from UTC+0, in minutes.
TOML_PURE_INLINE_GETTER friend constexpr bool operator==(time_offset lhs, time_offset rhs) noexcept
Equality operator.
TOML_PURE_INLINE_GETTER friend constexpr bool operator!=(time_offset lhs, time_offset rhs) noexcept
Inequality operator.
TOML_NODISCARD_CTOR time_offset() noexcept=default
Default constructor. Does not initialize the members.
uint8_t minute
The minute component, from 0 - 59.
uint32_t nanosecond
The fractional nanoseconds component, from 0 - 999999999.
uint8_t hour
The hour component, from 0 - 23.
uint8_t second
The second component, from 0 - 59.
TOML_NODISCARD_CTOR time() noexcept=default
Default constructor. Does not initialize the members.