EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::detail::Extendable< extensions_t > Struct Template Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Utilities/detail/Extendable.hpp>

Public Member Functions

 Extendable ()=default
 Default constructor.
 
 Extendable (const Extendable< extensions_t...> &extendable)=default
 Default copy constructor.
 
 Extendable (Extendable< extensions_t...> &&extendable)=default
 
 Extendable (const std::tuple< extensions_t...> &extensions)
 
 Extendable (std::tuple< extensions_t...> &&extensions)
 
Extendable< extensions_t...> & operator= (const Extendable< extensions_t...> &extendable)=default
 
Extendable< extensions_t...> & operator= (Extendable< extensions_t...> &&extendable)=default
 
template<typename... appendices_t>
Extendable< extensions_t...,
appendices_t...> 
append (appendices_t...aps) const
 
template<typename extension_t >
const extension_t & get () const
 
template<typename extension_t >
extension_t & get ()
 
const std::tuple
< extensions_t...> & 
tuple () const
 
std::tuple< extensions_t...> & tuple ()
 

Private Attributes

std::tuple< extensions_t...> m_extensions
 

Detailed Description

template<typename... extensions_t>
struct Acts::detail::Extendable< extensions_t >

This sctruct defines an extendable std::tuple

all Extensions have to :

  • default constructible
  • copy constructible
  • move constructible

This is needed in order to allow custom construction of objects

Definition at line 29 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 29 of file Extendable.hpp

Constructor & Destructor Documentation

template<typename... extensions_t>
Acts::detail::Extendable< extensions_t >::Extendable ( )
default

Default constructor.

template<typename... extensions_t>
Acts::detail::Extendable< extensions_t >::Extendable ( const Extendable< extensions_t...> &  extendable)
default

Default copy constructor.

template<typename... extensions_t>
Acts::detail::Extendable< extensions_t >::Extendable ( Extendable< extensions_t...> &&  extendable)
default
template<typename... extensions_t>
Acts::detail::Extendable< extensions_t >::Extendable ( const std::tuple< extensions_t...> &  extensions)
inline

Constructor from tuple

Parameters
extensionsSource extensions tuple

Definition at line 51 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 51 of file Extendable.hpp

template<typename... extensions_t>
Acts::detail::Extendable< extensions_t >::Extendable ( std::tuple< extensions_t...> &&  extensions)
inline

Constructor from tuple move

Parameters
extensionssource extensions tuple

Definition at line 57 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 57 of file Extendable.hpp

Member Function Documentation

template<typename... extensions_t>
template<typename... appendices_t>
Extendable<extensions_t..., appendices_t...> Acts::detail::Extendable< extensions_t >::append ( appendices_t...  aps) const
inline

Append new entries and return a new condition

Template Parameters
appendices_tTypes of appended entries to the tuple
Parameters
apsThe extensions to be appended to the new Extendable

Definition at line 78 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 78 of file Extendable.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

template<typename... extensions_t>
template<typename extension_t >
const extension_t& Acts::detail::Extendable< extensions_t >::get ( ) const
inline

Const retrieval of an extension of a specific type

Template Parameters
extension_tType of the Extension to be retrieved

Definition at line 89 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 89 of file Extendable.hpp

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

template<typename... extensions_t>
template<typename extension_t >
extension_t& Acts::detail::Extendable< extensions_t >::get ( )
inline

Non-const retrieval of an extension of a specific type

Template Parameters
extension_tType of the Extension to be retrieved

Definition at line 97 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 97 of file Extendable.hpp

template<typename... extensions_t>
Extendable<extensions_t...>& Acts::detail::Extendable< extensions_t >::operator= ( const Extendable< extensions_t...> &  extendable)
default

Default move assignment operator

Parameters
extendableThe source Extendable list
template<typename... extensions_t>
Extendable<extensions_t...>& Acts::detail::Extendable< extensions_t >::operator= ( Extendable< extensions_t...> &&  extendable)
default

Default move assignment operator

Parameters
extendableThe source Extendable list
template<typename... extensions_t>
const std::tuple<extensions_t...>& Acts::detail::Extendable< extensions_t >::tuple ( ) const
inline

Const retrieval of the extension tuype

Template Parameters
extension_tType of the Extension to be retrieved

Definition at line 104 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 104 of file Extendable.hpp

template<typename... extensions_t>
std::tuple<extensions_t...>& Acts::detail::Extendable< extensions_t >::tuple ( )
inline

Non-Const retrieval of the extendsion tuype

Template Parameters
extension_tType of the Extension to be retrieved

Definition at line 109 of file Extendable.hpp.

View newest version in sPHENIX GitHub at line 109 of file Extendable.hpp

Member Data Documentation

template<typename... extensions_t>
std::tuple<extensions_t...> Acts::detail::Extendable< extensions_t >::m_extensions
private

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