bool read_string( const String_t& s, Value_t& value )
    {
        typename String_t::const_iterator begin = s.begin();

        return read_range( begin, s.end(), value );
    }
 void read_string_or_throw( const String_t& s, Value_t& value )
 {
     add_posn_iter_and_read_range_or_throw( s.begin(), s.end(), value );
 }