rem: const char* cp_last = cp + strlen(cp);
add: const char* cp_last = cp + std::strlen(cp);
context: void insert_at_single_argument_test(){    using namespace boost::spirit;    const char* cp = "(one,0),(two,1),(three,2)";    const char* cp_first = cp;    const char* cp_last = cp + strlen(cp);    const char* cp_i[] = {"one","two","three"};    int i;    typedef std::map<std::string,int> map_string_type;    map_string_type c;    map_string_type::const_iterator it_find;    std::string str;    scanner<char const*> scan( cp_first, cp_last );    match<> hit;    hit = list_p(             confix_p(                '(',                    (*alpha_p)[ assign(str)]                     >>ch_p(',')                     >> int_p[ insert_at_a(c,str)]                    ,                ')'                )         ,        ch_p(',')         ).parse(scan);    BOOST_CHECK(hit);    BOOST_CHECK_EQUAL(scan.first, scan.last);    BOOST_CHECK_EQUAL( c.size(), static_cast<map_string_type::size_type>(3));    for (i=0;i<3;++i)    {        it_find = c.find(cp_i[i]);        BOOST_CHECK( it_find != c.end() );        BOOST_CHECK_EQUAL( i,it_find->second);        BOOST_CHECK_EQUAL( cp_i[i],it_find->first);    }}