What is the reasoning behind the lack of conversions when passing parameters
Atila Neves
atila.neves at gmail.com
Mon Feb 5 09:04:23 UTC 2024
On Saturday, 3 February 2024 at 03:19:00 UTC, Walter Bright wrote:
> C++ has this, implicit conversion of structs. It looks great
> with simple cases. However, as overloading gets more complex,
> it becomes a source of mass confusion. I've had many C++
> programmers tell me that nobody actually knows how C++
> overloading works - they just try random things until they get
> the result they want. There was a lot of talk in the 90s about
> implicit conversion being a mistake, but by then it was too
> late and C++ has had to learn to live with it.
>
> It's in that class of features that inevitably lead to
> incomprehensible code.
>
> I tried to make overloading in D much simpler, but it's still
> overly complex.
>
> Let's not dig that cat out of the pet semetary.
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
More information about the Digitalmars-d
mailing list