
I do not understand well the semantic of some constructs. 1) For t1, does the external mpl::lambda has any effect on some use of t1 or mpl::lambda<_1>::type and also mpl::lambda<_1> are always equivalent? 2) Does the uses of lambda in t8 has any effect or the result is always the same as with t2. 3) Does there are other tests that the ones below (i to vii) that would shows some other differences in the semantics of the expression? 4) Same question but for to_be_filled part of my tests. Anything different that the four ones belows (a to d)? 5) In any ot the tests with a to_be_filled part, is it possible to have more than one template argument and that the extra ones are used? The thing I have some of the following (what I have tried and what compile depends on the construct - that is t1, t2,...) : i) display_type(tn); ii) display_type(tn::type); iii) display_value(tn::type::value); iv) display_type(mpl::apply<tn, to_be_filled>::type) v) display_value(mpl::apply<tn, to_be_filled>::type::value) vi) display_type(tn::apply<to_be_filled>::type) vii) display_value(tn::apply<to_be_filled>::type::value) where tn is one of the type t1, t2,... t8 and to_be_filled is something similar to one of those : a) int b) X where X is a metafunction class c) mpl::plus<int_<1>, int_<2> > d) Y where Y is a simple metafunction similar to always_int in section 3.5.4. I have look at the documentation but it is hard to see the relation between each construct, the possible uses of each ones and their prmary purpose. I would be nice to provide more samples and more equivalences. Philippe