|
Uni20
Asynchronous tensor and runtime library.
|
Non-owning proxy returned by co_await on an lvalue WriteBuffer<T>.
More...
#include <buffers.hpp>
Public Types | |
| using | value_type = T |
Public Member Functions | |
| template<typename... Args> requires (!is_async_alias_v<T> && std::constructible_from<T, Args...>) | |
| T & | emplace (Args &&... args) |
| Construct or replace the underlying value in place. | |
| T & | get () const |
| Access an independent stored value mutably. | |
| T const & | get () const |
| Inspect an async alias descriptor without permitting retargeting. | |
| operator T const & () const | |
| operator T& () const | |
| template<typename U > requires (!is_async_alias_v<T>) && requires(T& value, U&& x) { value *= std::forward<U>(x); } | |
| WriteAccessProxy & | operator*= (U &&x) |
In-place *= update. | |
| template<typename U > requires (!is_async_alias_v<T>) && requires(T& value, U&& x) { value += std::forward<U>(x); } | |
| WriteAccessProxy & | operator+= (U &&x) |
In-place += update; emplaces when storage is unconstructed. | |
| template<typename U > requires (!is_async_alias_v<T>) && requires(T& value, U&& x) { value -= std::forward<U>(x); } | |
| WriteAccessProxy & | operator-= (U &&x) |
In-place -= update; emplaces negated value when unconstructed. | |
| T * | operator-> () const |
| T const * | operator-> () const |
| template<typename U > requires (!is_async_alias_v<T>) && requires(T& value, U&& x) { value /= std::forward<U>(x); } | |
| WriteAccessProxy & | operator/= (U &&x) |
In-place /= update. | |
| template<typename U > requires (!std::same_as<std::remove_cvref_t<U>, WriteAccessProxy>) && ((!is_async_alias_v<T> && detail::write_proxy_assignable_source<T, U>) || detail::async_alias_assignable_from<T, U &&>) | |
| WriteAccessProxy & | operator= (U &&u) |
| Assign an independent value or assign through an async alias. | |
| WriteAccessProxy & | operator= (WriteAccessProxy &&)=delete |
| WriteAccessProxy & | operator= (WriteAccessProxy const &)=delete |
| void | release () noexcept |
| Release the writer epoch held by this proxy. | |
| T | take () |
| Move out the stored value. | |
| T | take_release () |
| Move out the value and release the writer epoch. | |
| WriteAccessProxy ()=delete | |
| WriteAccessProxy (WriteAccessProxy &&) noexcept=default | |
| WriteAccessProxy (WriteAccessProxy const &) noexcept=default | |
Friends | |
| class | WriteBuffer< T > |
Non-owning proxy returned by co_await on an lvalue WriteBuffer<T>.
This proxy references the underlying writer held by the buffer.
| using uni20::async::WriteAccessProxy< T >::value_type = T |
|
delete |
|
defaultnoexcept |
|
defaultnoexcept |
|
inline |
Construct or replace the underlying value in place.
| Args | Constructor argument types. |
| args | Constructor arguments. |
|
inline |
Access an independent stored value mutably.
|
inline |
Inspect an async alias descriptor without permitting retargeting.
|
inline |
|
inline |
|
inline |
In-place *= update.
| U | Operand type. |
| x | Right-hand operand. |
*this.
|
inline |
In-place += update; emplaces when storage is unconstructed.
| U | Operand type. |
| x | Right-hand operand. |
*this.
|
inline |
In-place -= update; emplaces negated value when unconstructed.
| U | Operand type. |
| x | Right-hand operand. |
*this.
|
inline |
|
inline |
|
inline |
In-place /= update.
| U | Operand type. |
| x | Right-hand operand. |
*this.
|
inline |
Assign an independent value or assign through an async alias.
Alias assignment invokes an ADL-visible assign_through customization and never replaces the stored descriptor.
| U | Source accepted by the applicable assignment capability. |
| u | Source value. |
*this.
|
delete |
|
delete |
|
inlinenoexcept |
Release the writer epoch held by this proxy.
|
inline |
Move out the stored value.
|
inline |
Move out the value and release the writer epoch.
|
friend |