Boost.EnableIf defines enable_if etc, and goes on to define lazy_enable_if, which
the documentation states is for the circumstances and compilers when the non-lazy
version would break since the instantiation for which SFINAE should apply is a nested
instantiation which is not properly processed by some compilers.
What I don't understand is why anyone would wish to use the non-lazy versions,
since AFAICS the lazy version will always work.
Then the obvious question is why the non-lazy versions exist at all?
Thanks, Rob.
--
ACCU - Professionalism in programming - http://www.accu.org