15 typename Mutex = std::mutex,
28 template<
typename...
Args>
39 value_{std::move(
tmp).value()}
63 return std::move(value_);
66 template<
typename TGuard = MutexGuard>
72 template<
typename TGuard = MutexGuard>
84 requires std::is_same_v<decltype(f(std::declval<value_type>())),
const U&>
Definition synchronized_value_guard.h:13
Definition synchronized_value.h:18
SynchronizedValue & operator=(const SynchronizedValue &other)
Definition synchronized_value.h:42
T value_type
Definition synchronized_value.h:20
SynchronizedValue & operator=(SynchronizedValue &&tmp) noexcept
Definition synchronized_value.h:50
~SynchronizedValue() noexcept=default
SynchronizedValueGuard< value_type, mutex_type, TGuard > lock()
Definition synchronized_value.h:67
SynchronizedValueGuard< const value_type, mutex_type, TGuard > lock() const
Definition synchronized_value.h:73
SynchronizedValue(SynchronizedValue &&tmp) noexcept
Definition synchronized_value.h:38
SynchronizedValue()=default
Mutex mutex_type
Definition synchronized_value.h:21
SynchronizedValue(const SynchronizedValue &other)
Definition synchronized_value.h:34
SynchronizedValueGuard< const U, mutex_type, TGuard > lock_child(Getter f) const
Definition synchronized_value.h:83
value_type value() &&
Definition synchronized_value.h:60
MutexGuard mutex_guard_type
Definition synchronized_value.h:22
SynchronizedValue(Args &&... args)
Definition synchronized_value.h:30
Definition custom_decoration_generator.h:5
constexpr U to(T &&value)
Definition conversion.h:56