
David Abrahams wrote:
Tobias Schwinger <tschwinger@neoscientists.org> 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