|
Common System 0.2.0
Common interfaces and patterns for system integration
|
Unified adapter template for wrapping values or smart pointers. More...
#include <adapter.h>

Public Types | |
| using | value_type = typename Traits::value_type |
| using | pointer_type = typename Traits::pointer_type |
| using | reference_type = typename Traits::reference_type |
| using | const_reference_type = typename Traits::const_reference_type |
Public Member Functions | |
| adapter (T value) | |
| Construct adapter from value. | |
| adapter () | |
| Default constructor (for default-constructible types) | |
| auto | get () const noexcept |
| Access raw pointer to the stored value. | |
| decltype(auto) | operator* () const |
| Dereference operator. | |
| decltype(auto) | operator* () |
| Mutable dereference. | |
| auto | operator-> () const noexcept |
| Arrow operator. | |
| auto | operator-> () noexcept |
| Arrow operator (mutable) | |
| auto | weak () const |
| Get weak reference (only for shared_ptr) | |
| operator bool () const noexcept | |
| Check if adapter holds a valid value. | |
| const T & | value () const &noexcept |
| Get the underlying storage. | |
| T & | value () &noexcept |
| Get the underlying storage (mutable) | |
| T | value () &&noexcept |
| Move out the underlying storage. | |
| T | release () noexcept |
| Release ownership and return the underlying value. | |
Static Public Member Functions | |
| static constexpr bool | is_smart_pointer () noexcept |
| Check if adapter is holding a smart pointer type. | |
| static constexpr bool | supports_weak () noexcept |
| Check if weak references are supported. | |
Private Attributes | |
| T | value_ |
Unified adapter template for wrapping values or smart pointers.
This adapter provides a consistent interface regardless of whether the wrapped type is a value, shared_ptr, or unique_ptr.
| T | The type to wrap (can be value, shared_ptr, or unique_ptr) |
| Traits | Adapter traits (automatically deduced) |
| using kcenon::common::adapters::adapter< T, Traits >::const_reference_type = typename Traits::const_reference_type |
| using kcenon::common::adapters::adapter< T, Traits >::pointer_type = typename Traits::pointer_type |
| using kcenon::common::adapters::adapter< T, Traits >::reference_type = typename Traits::reference_type |
| using kcenon::common::adapters::adapter< T, Traits >::value_type = typename Traits::value_type |
|
inlineexplicit |
Construct adapter from value.
| value | The value to wrap |
Definition at line 129 of file adapter.h.
|
inline |
|
inlinenoexcept |
Access raw pointer to the stored value.
Definition at line 140 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
Referenced by kcenon::common::adapters::adapter< T, Traits >::operator->(), kcenon::common::adapters::adapter< T, Traits >::operator->(), and use_service().

|
inlinestaticconstexprnoexcept |
|
inlineexplicitnoexcept |
Check if adapter holds a valid value.
Definition at line 194 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inline |
Mutable dereference.
Definition at line 163 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inline |
Dereference operator.
Definition at line 152 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inlinenoexcept |
Arrow operator.
Definition at line 175 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::get().

|
inlinenoexcept |
Arrow operator (mutable)
Definition at line 180 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::get().

|
inlinenoexcept |
Release ownership and return the underlying value.
Definition at line 222 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inlinestaticconstexprnoexcept |
|
inlinenoexcept |
Move out the underlying storage.
Definition at line 216 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inlinenoexcept |
Get the underlying storage (mutable)
Definition at line 211 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inlinenoexcept |
Get the underlying storage.
Definition at line 206 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
inline |
Get weak reference (only for shared_ptr)
Definition at line 186 of file adapter.h.
References kcenon::common::adapters::adapter< T, Traits >::value_.
|
private |
Definition at line 241 of file adapter.h.
Referenced by kcenon::common::adapters::adapter< T, Traits >::get(), kcenon::common::adapters::adapter< T, Traits >::operator bool(), kcenon::common::adapters::adapter< T, Traits >::operator*(), kcenon::common::adapters::adapter< T, Traits >::operator*(), kcenon::common::adapters::adapter< T, Traits >::release(), kcenon::common::adapters::adapter< T, Traits >::value(), kcenon::common::adapters::adapter< T, Traits >::value(), kcenon::common::adapters::adapter< T, Traits >::value(), and kcenon::common::adapters::adapter< T, Traits >::weak().