
24 Sep
2005
24 Sep
'05
10:59 p.m.
Cromwell Enage <sponage@yahoo.com> 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