Boost logo

Boost Users :

Subject: Re: [Boost-users] mpl documentation question
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2012-04-07 13:50:39


AMDG

On 04/07/2012 10:47 AM, Robert Ramey wrote:
> 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<c1,c2> r; // a
>>>
>>> Return type:Integral Constant.
>>> Semantics:Equivalent to
>>> struct r : less<c1,c2>::type {}; //b
>>>
>>> if //a is used then the following yields bool_<true>
>>>
>>> is_same< less<c1, c2>, r>
>>>
>>> if // b is used then the following yields bool_<false>
>>>
>>> is_same< less<c1, c2>, r>
>>>
>>> So in what sense are //a and // b equivalent?
>>>
> <snip>
> So you agree that the statement above (which appears in the documentation)
>
>>> typedef less<c1,c2> r; // a
>>>
>>> Return type:Integral Constant.
>>> Semantics:Equivalent to
>>> struct r : less<c1,c2>::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<c1, c2>" ?
>

is_same doesn't work, but what you can
use is mpl::equal_to. mpl::equal_to
compares integral constants for equality
without requiring the types to match
exactly:

equal_to<less<c1, c2>, r> -> mpl::true_

In Christ,
Steven Watanabe


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net