Boost logo

Boost :

Subject: Re: [boost] Boost.Algorithm design question
From: Andrew Sutton (asutton.list_at_[hidden])
Date: 2011-11-03 08:53:54


> In these case the equivalence relation is not a property of the types
> but of the values they represent, no matter how much handwaving goes
> on around here about how those cases aren't important.  They can be a
> property of the types involved, but they just aren't in this
> circumstance, as const char* can mean too many different things.

>From this argument, I might be led to believe that exceptional cases
are viable arguments against generality. If there isn't sufficient
memory to compute a + b for strings, then + must not be associative?
If I can't divide by 0, then division by any number doesn't have
meaning? A C-string with an embedded \0 invalidates some equality
comparisons, so the rest can't be trusted to compare equal?

They're preconditions. They state where an operation is undefined for
a specific set of values. They aren't contradictions.


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