1 matches bool, 2 matches long

Paulo Pinto pjmlp at progtools.org
Sat Apr 27 21:26:38 PDT 2013


Am 28.04.2013 02:34, schrieb Jonathan M Davis:
> On Saturday, April 27, 2013 06:19:29 Maxim Fomin wrote:
>> On Friday, 26 April 2013 at 21:34:44 UTC, Walter Bright wrote:
>>> On 4/26/2013 1:59 PM, Diggory wrote:
>>>> The actual value shouldn't be taken into
>>>> account when determining which overload to call, only the type
>>>> should matter,
>>>
>>> D has an interesting feature called VRP (value range
>>> propagation), where implicit conversion very much depends on
>>
>>> the value. For example:
>> Then perhaps ban VRP on arguments if it affects overloading?
>
> No. The problem really isn't with VRP. The problem is the fact that D is
> weakly typed with regards to bool. In virtually all cases, having VRP do it's
> job is exactly what we want. It's just that in this one, weird things happen
> because of the implicit conversion to bool which is of zero utility in this
> case, because if that's what you wanted, you'd just use a boolean literal
> rather than an integer one.
>
> I really think that allowing the implicit conversion to bool is truly helpful
> in only a small number of cases (e.g. arithmetic which wants to add 0 or 1
> depending on the result of a boolean expression), and it clearly results in
> behavior that most people don't expect in quite a few instances. The fact that
> stuff like
>
>      auto b = false / true;
>
> compiles is just downright bizarre.
>
> - Jonathan M Davis
>

Well, we need material to write "D the good parts" :)


More information about the Digitalmars-d mailing list