On 3/12/2015 7:48 PM, Eric Niebler wrote:
The metafunctions in meta::lazy don't assume their arguments are themselves lazy metafunctions, which would make lazy metafunction composition difficult. It's really just not the Meta way.
FWIW, I decided this was a legitimate shortcoming of Meta's approach, so
I changed it. Now when you access the nested ::type of a lazy::
computation, it evaluates all nested lazy:: computations[*]. That makes
composition much nicer. For instance:
template<typename N>
struct factorial : eval<
if_c