Boost logo

Boost :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2005-06-30 08:24:58


David Abrahams wrote:
> 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

It undoubtfully is ;-). And awfully over-formalized. It's clear, though.

> important or useful to point out that doing "something"
> unconditionally is a special case of doing "something" only for
> certain values of "a?"
>

It generally isn't. However, I believe it makes some sense to menion the case in
the particular case of the paragraph we are discussing here. To try the section
back-merged into the text see:

     http://lists.boost.org/boost/2005/06/29469.php

Thanks,

Tobias


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