Boost logo

Boost :

Subject: Re: [boost] [string] proposal
From: Artyom (artyomtnk_at_[hidden])
Date: 2011-01-27 07:16:45

> From: Dean Michael Berris <mikhailberis_at_[hidden]>
> To: boost_at_[hidden]
> Sent: Thu, January 27, 2011 1:22:17 PM
> Subject: Re: [boost] [string] proposal
> On Thu, Jan 27, 2011 at 7:06 PM, Artyom <artyomtnk_at_[hidden]> wrote:
> >> > To all discussing about how to create
> >> > an "ultimate" string, I'd like to remind
> >> > you following "ultimate" strings existing
> >> > there:
> >> >
> >>
> >> Who are these people discussing how to create an "ultimate" string? Oh
> >> you mean me who wants to create an "immutable" string?
> >>
> >> I hardly called it an "ultimate" string so I think you're throwing a
> >> strawman red herring here. At any rate, I'll indulge you.
> >>
> >> [snip all the stupid non-ultimate strings quoted]
> >>
> >> They're all broken. Is that what you wanted me to say? :D
> >>
> >
> > Then don't call this thread [boost][string] proposal and don't
> > call it boost::string
> >
> Why not? If it's different from std::string why wouldn't boost::string
> be a proper name?

Because as you mentioned below, many things
from boost go to std, i.e. shared_ptr, function, bind and
many others.

So it shouldn't be "string" as C++ already has one.

> <emphasis>
> [snip]
> I would say
> exactly that: std::string is broken and it doesn't deserve to be the
> string implementation that C++ programmers have to use.
> </emphasis>

You think it is broken, others:

- Some think it is fine.
- Some think its API may be improved keeping it backward
- Some think that algorithms that use string may be improved.
- And some do think it is broken

> Who gave you the monopoly on what `string` should mean? :P

Nobody gave me a monopoly, however such monopoly had
given to C++ standard committee that had defined what
string means in C++'s standard namespace.

It is fine have other strings but IMHO they should not
be called boost::string.

> Seriously though, the point is this: Boost has an opportunity to
> influence some, if not a big part of the C++ community at large. What
> would be the point of doing another string that everybody else has
> done before when there's a chance that a different take on it can be
> potentially better than what's already there?

Different not better as better is a matter of taste - I personally love
std::string, especially GCC's implementation with COW.

> I mean seriously, the world has flex+yacc -- imagine if Joel thought
> to himself and said "well, it works, that's fine, but it's ugly and I
> can deal with it so...

Believe me you don't want to start Spirit vs Yacc+Bison :-)

> still the one best implementation of a shared pointer is
> the one in Boost.

Yes and now it is in Tr1! And if you want string to come
to tr1 you need either:

1. Make it fully backward compatible with std::string
2. Call it by different name.

My $0.02



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