Boost logo

Boost :

Subject: Re: [boost] Boost.Algorithm design question
From: Dave Abrahams (dave_at_[hidden])
Date: 2011-10-31 00:57:24


on Sun Oct 30 2011, "Peter Dimov" <pdimov-AT-pdimov.com> wrote:

> Dave Abrahams wrote:
>> Actually it needs a bit more than that: applying ! to your bool-ish
>> thing needs to be unambiguously &&-able with the result of i != j, which
>> might not itself be bool.
>
> That's part of what bool-ish means. For two bool-ish values x and y,
> x&&y should be bool-ish and
>
> (x&&y?true:false) == (x?true:false)&&(y?true:false)

I think you're missing the point, which is:

  When the specification for an algorithm exposes the actual expressions
  used in a given implementation of an algorithm, it tends to lock down
  the implementation in ways that don't necessarily make sense (and can
  prevent optimizations). Tiny details that one usually doesn't
  consider, like whether part of the expression is an lvalue or an
  rvalue, const or non-const, become encoded into the specification of
  the algorithm.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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