Boost logo

Boost Users :

From: Richard (legalize+jeeves_at_[hidden])
Date: 2008-02-19 18:48:50


[Please do not mail me a copy of your followup]

boost-users_at_[hidden] spake the secret code
<019801c8721d$e1612fc0$6407a80a_at_pdimov2> thusly:

>It is impossible to overload && in such a way so that in e1 && e2, e2 is not
>evaluated when e1 is false. But it's possible to overload f && g so that in
>(f && g)(x) :- f(x) && g(x), g(x) is not evaluated when f(x) is false.

I guess I'm still a little lost... why does it work for f && g and not
e1 && e2? Is it because f and g are functors and don't evaluate their
expressions until their operator() is called?

-- 
"The Direct3D Graphics Pipeline" -- DirectX 9 draft available for download
      <http://www.xmission.com/~legalize/book/download/index.html>
        Legalize Adulthood! <http://blogs.xmission.com/legalize/>

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net