|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2005-09-24 17:59:31
Cromwell Enage <sponage_at_[hidden]> writes:
> I remember a thread that ran for a while on this
> topic, and I need to make sure I've wrapped my head
> around it correctly.
I think you're referring to Vesa Karvonen's Lazy MPL (not sure if
that's what he called it).
> Here are my takes on laziness:
>
> <take id="point-1">
> A metafunction returns lazily if it can be used
> interchangeably with its return type.
I don't think that's the right way to think about it; Vesa's laziness
is not about how things are returned, but about the treatment of
arguments. A valid lazy metafunction argument is one that has a
nested ::type. In other words, all lazy metadata are MPL nullary
metafunctions.
-- 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