algorithms  2.2.0
Framework-independent algorithms for the EIC
Loading...
Searching...
No Matches
algorithms::Configurable::Property< T > Class Template Reference

#include <algorithms/property.h>

Inheritance diagram for algorithms::Configurable::Property< T >:
[legend]

Public Types

using value_type = T
using impl_type = detail::upcast_type_t<T>

Public Member Functions

 Property (Configurable *owner, std::string_view name, std::string_view description)
 Property (Configurable *owner, std::string_view name, const value_type &v, std::string_view description)
 Property ()=delete
 Property (const Property &)=default
Property & operator= (const Property &)=default
virtual void set (const PropertyValue &v)
virtual PropertyValue get () const
const value_type & value () const
 operator T () const
template<typename U>
bool operator== (const U &rhs) const
template<typename U>
bool operator!= (const U &rhs) const
template<typename U>
bool operator> (const U &rhs) const
template<typename U>
bool operator>= (const U &rhs) const
template<typename U>
bool operator< (const U &rhs) const
template<typename U>
bool operator<= (const U &rhs) const
template<typename U>
decltype(auto) operator+ (const U &rhs) const
template<typename U>
decltype(auto) operator- (const U &rhs) const
template<typename U>
decltype(auto) operator* (const U &rhs) const
template<typename U>
decltype(auto) operator/ (const U &rhs) const
decltype(auto) size () const
decltype(auto) length () const
decltype(auto) empty () const
decltype(auto) begin () const
decltype(auto) end () const
template<class Arg>
requires requires(const T& v, const Arg& arg) { v[arg]; }
decltype(auto) operator[] (const Arg &arg) const
template<class Key>
requires requires(const T& v, const Key& key) { v.find(key); }
decltype(auto) find (const Key &key) const
template<class... Args>
requires std::invocable<const T&, Args&&...>
decltype(auto) operator() (Args &&... args) const
Public Member Functions inherited from algorithms::Configurable::PropertyBase
 PropertyBase (std::string_view name, std::string_view description)
bool hasValue () const
Public Member Functions inherited from algorithms::NameMixin
 NameMixin (std::string_view name, std::string_view description)
std::string_view name () const
std::string_view description () const

Additional Inherited Members

Protected Attributes inherited from algorithms::Configurable::PropertyBase
bool m_has_value = false

Detailed Description

template<class T>
class algorithms::Configurable::Property< T >

Definition at line 98 of file property.h.

Member Typedef Documentation

◆ impl_type

template<class T>
using algorithms::Configurable::Property< T >::impl_type = detail::upcast_type_t<T>

Definition at line 101 of file property.h.

◆ value_type

template<class T>
using algorithms::Configurable::Property< T >::value_type = T

Definition at line 100 of file property.h.

Constructor & Destructor Documentation

◆ Property() [1/4]

template<class T>
algorithms::Configurable::Property< T >::Property ( Configurable * owner,
std::string_view name,
std::string_view description )
inline

Definition at line 103 of file property.h.

◆ Property() [2/4]

template<class T>
algorithms::Configurable::Property< T >::Property ( Configurable * owner,
std::string_view name,
const value_type & v,
std::string_view description )
inline

Definition at line 112 of file property.h.

◆ Property() [3/4]

template<class T>
algorithms::Configurable::Property< T >::Property ( )
delete

◆ Property() [4/4]

template<class T>
algorithms::Configurable::Property< T >::Property ( const Property< T > & )
default

Member Function Documentation

◆ begin()

template<class T>
decltype(auto) algorithms::Configurable::Property< T >::begin ( ) const
inline

Definition at line 170 of file property.h.

◆ empty()

template<class T>
decltype(auto) algorithms::Configurable::Property< T >::empty ( ) const
inline

Definition at line 165 of file property.h.

◆ end()

template<class T>
decltype(auto) algorithms::Configurable::Property< T >::end ( ) const
inline

Definition at line 175 of file property.h.

◆ find()

template<class T>
template<class Key>
requires requires(const T& v, const Key& key) { v.find(key); }
decltype(auto) algorithms::Configurable::Property< T >::find ( const Key & key) const
inline

Definition at line 187 of file property.h.

◆ get()

template<class T>
virtual PropertyValue algorithms::Configurable::Property< T >::get ( ) const
inlinevirtual

Implements algorithms::Configurable::PropertyBase.

Definition at line 130 of file property.h.

◆ length()

template<class T>
decltype(auto) algorithms::Configurable::Property< T >::length ( ) const
inline

Definition at line 160 of file property.h.

◆ operator T()

template<class T>
algorithms::Configurable::Property< T >::operator T ( ) const
inline

Definition at line 137 of file property.h.

◆ operator!=()

template<class T>
template<typename U>
bool algorithms::Configurable::Property< T >::operator!= ( const U & rhs) const
inline

Definition at line 141 of file property.h.

◆ operator()()

template<class T>
template<class... Args>
requires std::invocable<const T&, Args&&...>
decltype(auto) algorithms::Configurable::Property< T >::operator() ( Args &&... args) const
inline

Definition at line 194 of file property.h.

◆ operator*()

template<class T>
template<typename U>
decltype(auto) algorithms::Configurable::Property< T >::operator* ( const U & rhs) const
inline

Definition at line 148 of file property.h.

◆ operator+()

template<class T>
template<typename U>
decltype(auto) algorithms::Configurable::Property< T >::operator+ ( const U & rhs) const
inline

Definition at line 146 of file property.h.

◆ operator-()

template<class T>
template<typename U>
decltype(auto) algorithms::Configurable::Property< T >::operator- ( const U & rhs) const
inline

Definition at line 147 of file property.h.

◆ operator/()

template<class T>
template<typename U>
decltype(auto) algorithms::Configurable::Property< T >::operator/ ( const U & rhs) const
inline

Definition at line 149 of file property.h.

◆ operator<()

template<class T>
template<typename U>
bool algorithms::Configurable::Property< T >::operator< ( const U & rhs) const
inline

Definition at line 144 of file property.h.

◆ operator<=()

template<class T>
template<typename U>
bool algorithms::Configurable::Property< T >::operator<= ( const U & rhs) const
inline

Definition at line 145 of file property.h.

◆ operator=()

template<class T>
Property & algorithms::Configurable::Property< T >::operator= ( const Property< T > & )
default

◆ operator==()

template<class T>
template<typename U>
bool algorithms::Configurable::Property< T >::operator== ( const U & rhs) const
inline

Definition at line 140 of file property.h.

◆ operator>()

template<class T>
template<typename U>
bool algorithms::Configurable::Property< T >::operator> ( const U & rhs) const
inline

Definition at line 142 of file property.h.

◆ operator>=()

template<class T>
template<typename U>
bool algorithms::Configurable::Property< T >::operator>= ( const U & rhs) const
inline

Definition at line 143 of file property.h.

◆ operator[]()

template<class T>
template<class Arg>
requires requires(const T& v, const Arg& arg) { v[arg]; }
decltype(auto) algorithms::Configurable::Property< T >::operator[] ( const Arg & arg) const
inline

Definition at line 182 of file property.h.

◆ set()

template<class T>
virtual void algorithms::Configurable::Property< T >::set ( const PropertyValue & v)
inlinevirtual

Implements algorithms::Configurable::PropertyBase.

Definition at line 124 of file property.h.

◆ size()

template<class T>
decltype(auto) algorithms::Configurable::Property< T >::size ( ) const
inline

Definition at line 155 of file property.h.

◆ value()

template<class T>
const value_type & algorithms::Configurable::Property< T >::value ( ) const
inline

Definition at line 134 of file property.h.


The documentation for this class was generated from the following file: