20 std::lock_guard<mutex_t> lock() {
21 return std::lock_guard {_lock};
24 template<
class... Args>
26 raw {std::forward<Args>(
args)...} {
30 std::lock(_lock, other._lock);
32 raw = std::move(other.raw);
41 std::lock(_lock, other._lock);
52 sync_t &operator=(V &&val) {
60 sync_t &operator=(
const value_t &val)
noexcept {
68 sync_t &operator=(value_t &&val)
noexcept {
76 value_t *operator->() {
80 value_t &operator*() {
84 const value_t &operator*()
const {