Boost logo

Boost :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2006-01-31 03:59:25

Martin wrote:
>I found it useful when working with C APIs.
>With a fixed_string type I can do:
>boost::fixed_string<30> str;
>instead of first using a char array and then copy it to a basic_string.
>Second use for me is to have a basic_string compatible buffer to use in

Don't you mean char[] compatible buffer? Yes... the current version has
broken that, but I now know how to rework it so that this should work

>struct commandlineargs {
> boost::fixed_string<20> arg1;
> boost::filesystem::basic_path<boost::fixed_string<256> > path1
>Unfortuntaly the review version of the fixed_string doesn't work with any
>the above cases (first case needs a setlength() call).

In the new version, buffer() will return an object that will recalculate the
string size when it is destroyed, so you won't need to call setlength(). I
will provide a bufferex() or raw_buffer() that won't update the length, so
you could have:

   fixed_string< 100 > str;
   some_fn( str.buffer());
   some_fn2( str.raw_buffer(), str.length_calculator());
   str.setlength( some_fn2( str.raw_buffer()));

depending on the prototype of the function.

>overrun protection isn't important for me.


- Reece

Boost list run by bdawes at, gregod at, cpdaniel at, john at