22#ifndef WXMAXIMA_CACHEDVALUE_H
23#define WXMAXIMA_CACHEDVALUE_H
43template <typename T, typename std::enable_if<std::is_integral<T>::value,
bool>::type =
true>
46 static constexpr T invalid = std::numeric_limits<T>::max();
47 mutable T m_value = invalid;
53 constexpr bool IsValid()
const {
return m_value != invalid; }
54 constexpr bool IsInvalid()
const {
return m_value == invalid; }
55 constexpr void Invalidate()
const { m_value = invalid; }
56 operator T()
const {
return Get(); }
59 wxASSERT_MSG(m_value != invalid,
"Attempted to use an invalid cached value");
60 return (m_value != invalid) ? m_value : T{};
62 void SetCached(T newValue)
const
64 wxASSERT_MSG(newValue != invalid,
"Attempted to set an out-of-range cached value.");
A cached integer value.
Definition: CachedValue.h:45