11using std::is_invocable_v;
13using std::remove_reference;
15using std::unique_lock;
18template <
typename Prov
ider>
23 using val_t =
typename remove_reference<
decltype((*provider_)())>::type;
val_t const * operator->() const
Definition lazy.hpp:63
~Lazy()
Definition lazy.hpp:33
mutex mu_
Definition lazy.hpp:27
Provider * provider_
Definition lazy.hpp:20
auto & operator=(T t)
Definition lazy.hpp:84
Lazy(Provider const &provider)
Definition lazy.hpp:31
auto const & operator[](T t) const
Definition lazy.hpp:79
val_t const * get() const
Definition lazy.hpp:60
val_t & operator*()
Definition lazy.hpp:65
val_t * get()
Definition lazy.hpp:42
auto & operator[](T t)
Definition lazy.hpp:74
val_t * val_ptr_
Definition lazy.hpp:26
Lazy(Provider &&provider)
Definition lazy.hpp:32
typename remove_reference< decltype((*provider_)())>::type val_t
Definition lazy.hpp:23
val_t const & operator*() const
Definition lazy.hpp:66
bool initializing_
Definition lazy.hpp:28
val_t * operator->()
Definition lazy.hpp:62