|
Uni20
Asynchronous tensor and runtime library.
|
Owning proxy returned by co_await write_buffer.transfer().
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 () |
| Access mutable stored value. | |
| T const & | get () const |
| Access const stored value. | |
| operator T const & () const | |
| operator T& () | |
| template<typename U > requires (!is_async_alias_v<T>) && requires(T& value, U&& x) { value *= std::forward<U>(x); } | |
| OwningWriteAccessProxy & | 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); } | |
| OwningWriteAccessProxy & | 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); } | |
| OwningWriteAccessProxy & | operator-= (U &&x) |
In-place -= update; emplaces negated value when unconstructed. | |
| T * | operator-> () |
| T const * | operator-> () const |
| template<typename U > requires (!is_async_alias_v<T>) && requires(T& value, U&& x) { value /= std::forward<U>(x); } | |
| OwningWriteAccessProxy & | operator/= (U &&x) |
In-place /= update. | |
| OwningWriteAccessProxy & | operator= (OwningWriteAccessProxy &&) noexcept=delete |
| OwningWriteAccessProxy & | operator= (OwningWriteAccessProxy const &)=delete |
| template<typename U > requires (!std::same_as<std::remove_cvref_t<U>, OwningWriteAccessProxy>) && ((!is_async_alias_v<T> && detail::write_proxy_assignable_source<T, U>) || detail::async_alias_assignable_from<T, U &&>) | |
| OwningWriteAccessProxy & | operator= (U &&u) |
| Assign an independent value or assign through an async alias. | |
| OwningWriteAccessProxy ()=delete | |
| OwningWriteAccessProxy (OwningWriteAccessProxy &&) noexcept=default | |
| OwningWriteAccessProxy (OwningWriteAccessProxy 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. | |
Friends | |
| class | OwningWriteAwaiter< T > |
| class | WriteBuffer< T > |
Owning proxy returned by co_await write_buffer.transfer().
Ownership of the writer handle is transferred into this proxy.
| using uni20::async::OwningWriteAccessProxy< T >::value_type = T |
|
delete |
|
delete |
|
defaultnoexcept |
|
inline |
Construct or replace the underlying value in place.
| Args | Constructor argument types. |
| args | Constructor arguments. |
|
inline |
Access mutable stored value.
|
inline |
Access const stored value.
|
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.
|
deletenoexcept |
|
delete |
|
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.
|
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 |
|
friend |