Esempio n. 1
0
 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() );
    }
Esempio n. 3
0
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;
}