7#include "utility/module.hpp"
11namespace hi {
inline namespace v1 {
19 constexpr cache(
cache const&)
noexcept =
default;
21 constexpr cache& operator=(
cache const&)
noexcept =
default;
22 constexpr cache& operator=(
cache&&)
noexcept =
default;
23 constexpr cache()
noexcept =
default;
25 constexpr cache& operator=(forward_of<value_type()>
auto&& func)
noexcept
31 constexpr void reset()
const noexcept
33 _value = std::nullopt;
36 [[nodiscard]]
constexpr value_type
const& load()
const noexcept
45 [[nodiscard]]
constexpr value_type
const& reload()
const noexcept
52 constexpr operator value_type
const &()
const noexcept
57 [[nodiscard]]
constexpr value_type
const& operator*()
const noexcept
62 [[nodiscard]]
constexpr value_type *operator->()
const noexcept
68 [[nodiscard]] constexpr friend auto operator op(cache const& lhs, cache const& rhs) noexcept \
69 requires requires { operator op(*lhs, *rhs); } \
71 return operator op(*lhs, *rhs); \
74 [[nodiscard]] constexpr friend auto operator op(cache const& lhs, auto const& rhs) noexcept \
75 requires requires { operator op(*lhs, rhs); } \
77 return operator op(*lhs, rhs); \
80 [[nodiscard]] constexpr friend auto operator op(auto const& lhs, cache const& rhs) noexcept \
81 requires requires { operator op(lhs, *rhs); } \
83 return operator op(lhs, *rhs); \
103 [[nodiscard]] constexpr friend auto operator op(cache const& rhs) noexcept \
104 requires requires { operator op(*rhs); } \
106 return operator op(*rhs); \
114 [[nodiscard]]
constexpr auto operator[](
auto const &rhs)
noexcept
119 [[nodiscard]]
constexpr auto operator()(
auto &&... rhs)
noexcept
125 mutable std::optional<value_type> _value;
#define hi_axiom(expression,...)
Specify an axiom; an expression that is true.
Definition assert.hpp:238
#define hi_forward(x)
Forward a value, based on the decltype of the value.
Definition utility.hpp:29
DOXYGEN BUG.
Definition algorithm.hpp:13
geometry/margins.hpp
Definition cache.hpp:11