virtual void usage_info( format_stream& fs ) const { fs << BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( '{' ); m_primary.usage_info( fs ); fs << BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( '|' ); m_secondary.usage_info( fs ); fs << BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( '}' ); }
void accept_modifier( Modifier const& m ) { cla::parameter::accept_modifier( m ); m_arg_factory.accept_modifier( m ); BOOST_TEST_UTILS_RUNTIME_PARAM_VALIDATE_LOGIC( !p_optional || !m_arg_factory.m_value_generator, BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( "can't define a value generator for optional parameter " ) << id_2_report() ); }
inline bool interpret_argument_value( cstring source, boost::optional<std::list<T> >& res, int ) { BOOST_TEST_UTILS_RUNTIME_PARAM_TRACE( "In interpret_argument_value<std::list<T>>" ); res = std::list<T>(); while( !source.is_empty() ) { // !! should we use token_iterator cstring::iterator single_value_end = std::find( source.begin(), source.end(), BOOST_TEST_UTILS_RUNTIME_PARAM_LITERAL( ',' ) ); boost::optional<T> value; interpret_argument_value( cstring( source.begin(), single_value_end ), value, 0 ); res->push_back( *value ); source.trim_left( single_value_end + 1 ); } return true; }