|
template<typename... Args>
requires std::constructible_from<Value, Args...> && ( sizeof...( Args ) != 1 || !( std::same_as<SynchronizedValue,
std::remove_cvref_t<Args>> || ... ) ) |
| | explicit (sizeof...(Args)==1) SynchronizedValue(Args &&... args) |
| | SynchronizedValue (SynchronizedValue const &rhs) |
| SynchronizedValue & | operator= (const SynchronizedValue &rhs) |
| | SynchronizedValue (SynchronizedValue &&rhs) |
| SynchronizedValue & | operator= (SynchronizedValue &&rhs) |
template<typename... Args, std::invocable< Value &, Args... > F>
requires ( !std::is_invocable_v<F, const Value&, Args...> ) |
| decltype(auto) | with_lock (F &&f, Args &&... args) |
| template<typename... Args, std::invocable< const Value &, Args... > F> |
| decltype(auto) | with_lock (F &&f, Args &&... args) const |
template<typename Value, typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
requires ( !std::is_reference_v<Value> )
class Gaudi::cxx::SynchronizedValue< Value, Mutex, ReadLock, WriteLock >
Definition at line 31 of file SynchronizedValue.h.
template<typename Value, typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
template<typename... Args, std::invocable< Value &, Args... > F>
requires ( !std::is_invocable_v<F, const Value&, Args...> )
template<typename Value, typename Mutex = std::mutex, typename ReadLock = std::conditional_t<std::is_same_v<std::shared_mutex, Mutex>, std::shared_lock<Mutex>, std::lock_guard<Mutex>>, typename WriteLock = std::lock_guard<Mutex>>
template<typename... Args, std::invocable< const Value &, Args... > F>