Boost logo

Boost :

From: Greg Colvin (gcolvin_at_[hidden])
Date: 2002-02-06 17:31:41


From: "David Abrahams" <david.abrahams_at_[hidden]>
> From: "Greg Colvin" <gcolvin_at_[hidden]>
> > >
> > > So, I can't force you to say "basic guarantee", but I can ask nicely.
> Pretty
> > > please?
> > >
> > > Regards,
> > > Dave
> >
> > Or don't say anything? When we rewrote your proposal in standardese
> > we never mention the basic guarantee, just because it is so basic.
> > Unless a construct specifically requires its users not to throw there
> > is no excuse for undefined behavior when they do.
>
> True, that language is good for the standard, which is trying to be ascetic
> and minimal. But when we talk about exception-safety among ourselves it's
> nice to have a term for "this function doesn't give the strong guarantee"
> which doesn't sound like it means "this function abrogates all
> responsibility and leaves you high and dry in case of an exception". And
> since some people do write code in practice which ignores exception-safety,
> it's an important distinction to make.

I understand. It just seems that "all functions give the basic guarantee
unless otherwise specified" is just a subset of "no functions have
undefined behavior unless otherwise specified". But we don't have, or
seem to need, a name for the latter. We just assume that an author must
specify the requirements for defined behavior. A requirement that an
operation not throw is just such a requirement, and I'd like for that to
become so obvious that we don't need a special name for it.

But I agree that in the meantime "basic guarantee" is a better name than
"weak guarantee".


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