On Mon, 27 Sep 2004, Gary Setter wrote:

> <snip>
> > I repeat:  The string is only null termined when the c_str() or
> > ensure_null_end() is called.
> >
> Look at your String class. You have several public methods that
> return begin_ without null termination.

So What.  If someone want a null terminated string use c_str() or first call 
ensure_null_end().  That is the way I designed it and that is the way 
Aspell uses it.

> No one I know maintains none null terminated lists this way. It
> is too easy to forget and have a problem. Null termination is not
> costly. You might make your code run faster by not appending
> characters one at a time to a string.

The std::string class (NOT the Microsoft string class) does NOT guarantee
that the string is always null terminated.  In fact it doesn't even
guarantee that the string will be stored in a continuous area of memory.  
The only thing it guarantees is that that the c_str() method will return a
pointer to a null terminated string.  The string returned is invalided when
any non-const member function is called.

The acommon::String class is modeled after the std::string class expect 
that it guarantees that the string will be stored is a continuous area of 
memory.

-- 
http://kevin.atkinson.dhs.org



_______________________________________________
Aspell-devel mailing list
[EMAIL PROTECTED]
http://lists.gnu.org/mailman/listinfo/aspell-devel

Reply via email to