void accept_modifier( Modifier const& m ) { optionally_assign( m_value_handler, m, handler ); optionally_assign( m_value_interpreter, m, interpreter ); if( m.has( default_value ) ) { BOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_generator, BOOST_RT_PARAM_LITERAL( "multiple value generators for parameter" ) ); T const& dv_ref = m[default_value]; m_value_generator = rt_cla_detail::const_generator<T>( dv_ref ); } if( m.has( default_refer_to ) ) { BOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_generator, BOOST_RT_PARAM_LITERAL( "multiple value generators for parameter" ) ); cstring ref_id = m[default_refer_to]; m_value_generator = rt_cla_detail::ref_generator<T>( ref_id ); } if( m.has( assign_to ) ) { BOOST_RT_PARAM_VALIDATE_LOGIC( !m_value_handler, BOOST_RT_PARAM_LITERAL( "multiple value handlers for parameter" ) ); m_value_handler = rt_cla_detail::assigner<T>( m[assign_to] ); } }
void accept_modifier( Modifier const& m ) { cla::parameter::accept_modifier( m ); m_arg_factory.accept_modifier( m ); BOOST_RT_PARAM_VALIDATE_LOGIC( !p_optional || !m_arg_factory.m_value_generator, BOOST_RT_PARAM_LITERAL( "couldn't define a value generator for optional parameter " ) << id_2_report() ); }
void accept_modifier( Modifier const& m ) { basic_naming_policy::accept_modifier( m ); BOOST_RT_PARAM_VALIDATE_LOGIC( m_name.size() <= 1, "Invalid parameter name " << m_name ); }