All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> > Class Template Reference
Inheritance diagram for paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >:
paal::data_structures::detail::components< TypesVector< NamesRest...>, TypesVector< TypesRest...> >

Public Member Functions

 components ()
 constructor
 
 components (components const &other)
 
 components (components &other)
 
 components (components &&)=default
 
componentsoperator= (components const &other)
 
componentsoperator= (components &other)
 
componentsoperator= (components &&)=default
 
template<typename T , typename... TypesPrefix>
 components (T &&t, TypesPrefix &&...types)
 constructor takes some number of arguments, This arguments has to be convertible to the same number of the first components in components class. Arguments can be both rvalue and lvalue references More...
 
template<typename Comps >
 components (const Comps &comps, copy_tag)
 
template<typename Comps >
 components (Comps &&comps, copy_tag)
 
template<typename ComponentName , typename = is_my_name<ComponentName>>
Type & get (wrap_to_constructable< Name > dummy=wrap_to_constructable< Name >())
 This fucntion returns Component for name Name, nonconst version. More...
 
template<typename ComponentName , typename = is_my_name<ComponentName>>
const Type & get (wrap_to_constructable< Name > dummy=wrap_to_constructable< Name >()) const
 This fucntion returns Component for name Name, const version. More...
 
template<typename ComponentName , typename... Args>
auto call (Args &&...args) -> decltype(std::declval< typename type_for_name< ComponentName, Names, Types >::type >()(std::forward< Args >(args)...))
 This function directly calls component. m_component(args) has to be valid expresion nonconst version. More...
 
template<typename ComponentName , typename... Args>
auto call (Args &&...args) const -> decltype(std::declval< const typename type_for_name< ComponentName, Names, Types >::type >()(std::forward< Args >(args)...))
 This function directly calls component. m_component(args) has to be valid expresion const version. More...
 
template<typename ComponentName >
void set (const typename type_for_name< ComponentName, Names, Types >::type comp)
 setter for component assigned to Name. More...
 

Static Public Member Functions

template<typename... NamesSubset, typename... SomeTypes>
static components< Names, Typesmake (SomeTypes &&...types)
 function creating components class, takes arguments only for assigned Names More...
 

Protected Member Functions

template<bool move, typename A >
move_or_pass_reference (const A &a)
 
template<bool move, typename A , typename = typename std::enable_if<!move>::type>
const A & move_or_pass_reference (const A &a)
 
template<bool move, typename A , typename = typename std::enable_if<!move>::type>
A & move_or_pass_reference (A &a)
 
template<typename Comps , typename dummy = typename std::enable_if< has_template_get<Comps, Name>::value, int>::type>
 components (Comps &&comps, movable_tag m, dummy d=dummy())
 
template<typename Comps , typename dummy = typename std::enable_if< !has_template_get<Comps, Name>::value>::type>
 components (Comps &&comps, movable_tag m)
 
template<typename Comps , typename dummy = typename std::enable_if< has_template_get<Comps, Name>::value, int>::type>
 components (Comps &&comps, Notmovable_tag m, dummy d=dummy())
 
template<typename Comps , typename dummy = typename std::enable_if< !has_template_get<Comps, Name>::value>::type>
 components (Comps &&comps, Notmovable_tag m)
 

Detailed Description

template<typename Name, typename Type, typename... NamesRest, typename... TypesRest>
class paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >

Definition at line 126 of file components.hpp.

Constructor & Destructor Documentation

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename T , typename... TypesPrefix>
paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::components ( T &&  t,
TypesPrefix &&...  types 
)
inline

constructor takes some number of arguments, This arguments has to be convertible to the same number of the first components in components class. Arguments can be both rvalue and lvalue references

Template Parameters
T,firstcomponent, it must be convertible to Type.
TypesPrefix,restof the components
Parameters
t
types

Definition at line 191 of file components.hpp.

Member Function Documentation

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename ComponentName , typename... Args>
auto paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::call ( Args &&...  args) -> decltype(std::declval< typename type_for_name<ComponentName, Names, Types>::type>()( std::forward<Args>(args)...))
inline

This function directly calls component. m_component(args) has to be valid expresion nonconst version.

Template Parameters
ComponentName
Args
Parameters
argscall arguments
Returns

Definition at line 253 of file components.hpp.

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename ComponentName , typename... Args>
auto paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::call ( Args &&...  args) const -> decltype(std::declval< const typename type_for_name<ComponentName, Names, Types>::type>()( std::forward<Args>(args)...))
inline

This function directly calls component. m_component(args) has to be valid expresion const version.

Template Parameters
ComponentName
ComponentName
Args
Parameters
argscall arguments
Returns
the same as m_component return type

Definition at line 272 of file components.hpp.

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename ComponentName , typename = is_my_name<ComponentName>>
Type& paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::get ( wrap_to_constructable< Name >  dummy = wrap_to_constructable<Name>())
inline

This fucntion returns Component for name Name, nonconst version.

Template Parameters
ComponentName
typename
Parameters
dummy
Returns

Definition at line 221 of file components.hpp.

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename ComponentName , typename = is_my_name<ComponentName>>
const Type& paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::get ( wrap_to_constructable< Name >  dummy = wrap_to_constructable<Name>()) const
inline

This fucntion returns Component for name Name, const version.

Template Parameters
ComponentName
typename
Parameters
dummy
Returns

Definition at line 236 of file components.hpp.

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename... NamesSubset, typename... SomeTypes>
static components<Names, Types> paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::make ( SomeTypes &&...  types)
inlinestatic

function creating components class, takes arguments only for assigned Names

Template Parameters
NamesSubset
SomeTypes
Parameters
types
Returns

Definition at line 308 of file components.hpp.

template<typename Name , typename Type , typename... NamesRest, typename... TypesRest>
template<typename ComponentName >
void paal::data_structures::detail::components< TypesVector< Name, NamesRest...>, TypesVector< Type, TypesRest...> >::set ( const typename type_for_name< ComponentName, Names, Types >::type  comp)
inline

setter for component assigned to Name.

Template Parameters
ComponentName
Parameters
comp

Definition at line 286 of file components.hpp.


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