What is the reasoning behind the lack of conversions when passing parameters

Atila Neves atila.neves at gmail.com
Tue Feb 6 10:17:57 UTC 2024


On Tuesday, 6 February 2024 at 10:10:32 UTC, FeepingCreature 
wrote:
> On Monday, 5 February 2024 at 09:04:23 UTC, Atila Neves wrote:
>> On Saturday, 3 February 2024 at 03:19:00 UTC, Walter Bright 
>> wrote:
>>> [...]
>>
>> It got bad enough in C++ that the guideline is now to use 
>> explicit on single parameter constructors: 
>> https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-explicit
>
> I just don't think that "this feature can be abused" is a 
> convincing argument. So what? Make it opt-in, mark it as 
> dangerous, then when people use it it's on them.
>
> I don't want implicit conversion to always be enabled, I want 
> it to be enabled by a keyword or UDA. @implicit or something. 
> Even per-parameter would be useful!

Sure, this would definitely help. I think the lesson learned 
there is that implicit conversions *by default* are a bad idea. I 
don't even like integer conversions, cast if you want it.

> Honestly, if you just hardcoded implicit construction for 
> `std.sumtype.SumType` I would be quite happy already.

Something I've wanted every time I've used it.


More information about the Digitalmars-d mailing list