Boost logo

Boost :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2004-05-18 06:48:34


John Nagle wrote:
> With no base class for all fixed_string types, though,
>there's no way to pass fixed_string objects around, short
>of templating every function that uses them.
>
> A base class seems to be needed. Otherwise, there's
>no direct replacement for "char *" arguments.

I have uploaded an initial version of this. I wanted to wait before I
approached the base class concept for two main reasons: (a) I wanted to move
the interface closer to that of std::basic_string and (b) I wasn't sure how
to implement it as a template on character type.

The interface names have been moved to the corresponding basic_string/STL
names (assign, append, etc.).

The approach I have used for the base classes retains the template on
character type, using MPL machinery to select the appropriate base class.
Note that this is not perfect, since I still need a constraint to limit
CharT to char and wchar_t, or provide an additional template parameter that
defaults to the MPL machinery, allowing you to provide your own interface
for custom string types.

> Here's a simple test program. It should be possible
>to do the common operations done here. That doesn't
>seem possible with the latest version in the Boost
>sandbox.

This should work with the appropriate name changes:
   boost::char_string is now boost::fixed_string (although it still
currently resides in fixed_string/char_string.hpp);
   boost::char_string_base is boost::char_string for readability;
   boost::wchar_string_base is boost::wchar_string for readability;

Regards,
Reece

_________________________________________________________________
Express yourself with cool new emoticons http://www.msn.co.uk/specials/myemo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk