Vicente J. Botet Escriba wrote:
Le 07/04/12 09:13, Robert Ramey a écrit :
Documentation for mpl::less<T> has the following section:
typedef less
r; // a Return type:Integral Constant. Semantics:Equivalent to struct r : less
::type {}; //b if //a is used then the following yields bool_<true>
is_same< less
, r> if // b is used then the following yields bool_<false>
is_same< less
, r> So in what sense are //a and // b equivalent?
Hi, they are not equivalents. The equivalence relation appears via the
type access.
is_same< less
::type, r::type> should be true_type in both cases.
This is because integral_constant
defines a nested typedef 'type' as itself.
Hmmm - this helps understand why I've always been confused about
when to use "less
typedef less
r; // a Return type:Integral Constant. Semantics:Equivalent to struct r : less
::type {}; //b
is incorrect and misleading?
I'm thinking that it shouldn't even be in the documentation as written.
This raises the question as to what the documentation should say
about the type "less
HTH, Vicente