Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2005-06-30 07:33:56


Tobias Schwinger <tschwinger_at_[hidden]> writes:

> I don't believe it's metaprogramming specific -- let's clear up the logic, first:
>
>> it is unclear to me whether
>> the common case is "ignoring an aspect" or if it is really "allowing a
>> match for any variation of an aspect"
>
> Given a variable 'a' which can be either '1', '2' or '3' it doesn't make a difference:
>
> if ((a == 1) || (a == 2) || (a == 3)) // match any variation of a
> {
> // do something
> }
>
> is logically equivalent to
>
> // no if -- just ignore a
> {
> // do something
> }
>
>> which I can do by "ignoring an
>> aspect."
>>
>
> Equivalence is commutative:
>
> You can ignore 'a' by allowing any variation and you can allow any variation by
> ignoring 'a' -- no difference, again.
>
> Making any difference would be talking about implementation details in a parapraph
> about plain logic.

Isn't this a complicated way of saying something simple? Is it
important or useful to point out that doing "something"
unconditionally is a special case of doing "something" only for
certain values of "a?"

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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