8 #ifndef cf3_solver_actions_Proto_ComponentWrapper_hpp
9 #define cf3_solver_actions_Proto_ComponentWrapper_hpp
11 #include <boost/proto/core.hpp>
29 template<
typename ComponentT,
typename TagT>
69 m_cached_component = m_component->get();
74 template<
typename ComponentT,
typename TagT>
76 public boost::proto::extends< boost::proto::literal< ComponentWrapperImpl<ComponentT, TagT>& >, ComponentWrapper<ComponentT, TagT> >
107 #endif // cf3_solver_actions_Proto_ComponentWrapper_hpp
Adds fonctionnalities to Property class.
Option & link_to(TYPE *par)
Safe pointer to an object. This is the supported method for referring to components.
ComponentWrapper(common::Option &component_option)
Construction using an option that will point to the actual component.
ComponentWrapperImpl(common::Option &component_option)
Construction using an option that will point to the actual component.
boost::proto::extends< boost::proto::literal< ComponentWrapperImpl< ComponentT, TagT > & >, ComponentWrapper< ComponentT, TagT > > base_type
boost::shared_ptr< Handle< ComponentT > > m_component
Top-level namespace for coolfluid.
ComponentT & component()
Return the wrapped component.
Proto-ready terminal type for wrapping a component.
ComponentWrapperImpl< ComponentT, TagT > m_component_wrapper
Points to the wrapped component, if any.
ComponentWrapperImpl(ComponentT &component)
ComponentWrapper(ComponentT &component)
bool is_not_null(T ptr)
predicate for comparison to nullptr
ComponentT * m_cached_component